数据分析读书

4.pyecharts散点图

2021-08-18  本文已影响0人  无聊的兔子

一、适用条件
1、散点图:散点图表示因变量随自变量而变化的大致趋势,散点图通过散点的疏密程度和变化趋势表示二个连续变量的数量关系
2、分类散点图
二、代码实现
1.导入所需包

from numpy.lib import index_tricks
from pyecharts import options as opts
from pyecharts.charts import  Scatter
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
from pyecharts.render import make_snapshot
#from snapshot_phantomjs import snapshot
from snapshot_pyppeteer import snapshot
import pandas as pd
import numpy as np  

2.数据整理

###导入数据
df = pd.read_excel('picture.xlsx',sheet_name='scatter')
###观察数据
print(df.head())
###选择所需数据
df = df.sort_values(by="销量",ascending=True)
x_list = list(df["销量"])
y_list = list(df["收入"])
x1_list = list(df.loc[df["商家"]=="A"]["销量"])
y1_list = list(df.loc[df["商家"]=="A"]["收入"])
x2_list = list(df.loc[df["商家"]=="B"]["销量"])
y2_list = list(df.loc[df["商家"]=="B"]["收入"])
x3_list = list(df.loc[df["商家"]=="C"]["销量"])
y3_list = list(df.loc[df["商家"]=="C"]["收入"])
title1 = "商家销量收入统计"
subtitle1 = "纯属虚构"

3.1散点图

###画图
def scatter_chart() -> Scatter:
    ################## 这部分可以直接用,保存成网页
    c = (
        Scatter(init_opts=opts.InitOpts(width="1200px", height="600px"))
        .add_xaxis(x_list)
        .add_yaxis(
            series_name="总体",
            y_axis=y_list,
            symbol='circle',# 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none',设置形状
            symbol_size=10,##形状大小
            label_opts=opts.LabelOpts(is_show=False),
        )
        .set_series_opts()
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(
                type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
            ),
            yaxis_opts=opts.AxisOpts(
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            ),
            tooltip_opts=opts.TooltipOpts(is_show=False),
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            # visualmap_opts=opts.VisualMapOpts(type_="size", max_=5700, min_=20),
        )
        # .render("1.html")
    )
    ##################
    return c
make_snapshot(snapshot, scatter_chart().render(), "4_1.gif")
if __name__ == '__main__':
    scatter_chart()
4_1.gif

3.2分类散点图

def scatter_chart() -> Scatter:
    ################## 这部分可以直接用,保存成网页
    c = (
        Scatter(init_opts=opts.InitOpts(width="1200px", height="600px"))
        .add_xaxis(x1_list)
        .add_yaxis(
            series_name="商家A",
            y_axis= y1_list,
            symbol='rect', #'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none',
            symbol_size=10,
            label_opts=opts.LabelOpts(is_show=False),
        )
        .add_xaxis(x2_list)
        .add_yaxis(
            series_name="商家B",
            y_axis=y2_list,
            symbol='roundRect', #'triangle', 'diamond', 'pin', 'arrow', 'none',
            symbol_size=10,
            label_opts=opts.LabelOpts(is_show=False),
        )
        .add_xaxis(x3_list)
        .add_yaxis(     
            series_name="商家C",
            y_axis=y3_list,
            symbol='triangle', #'diamond', 'pin', 'arrow', 'none',
            symbol_size=10,
            label_opts=opts.LabelOpts(is_show=False),
        )
        .set_series_opts()
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(
                type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
            ),
            yaxis_opts=opts.AxisOpts(
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            ),
            tooltip_opts=opts.TooltipOpts(is_show=False),
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            # visualmap_opts=opts.VisualMapOpts(type_="size", max_=5700, min_=20),
        )
        # .render("1.html")
    )
    ##################
    return c
make_snapshot(snapshot, scatter_chart().render(), "4_2.gif")
if __name__ == '__main__':
    scatter_chart()
4_2.gif
上一篇 下一篇

猜你喜欢

热点阅读