pyecharts_1.ipynb
单词: filter 过滤
导入3个包: 形状,设置包,消除警告
数据是可迭代的对象,一 一对应.可是是列表或者租

  1. # 基于python的电子表格
  2. from pyecharts.charts import Bar #条状图
  3. from pyecharts import options as opts #导入设置包
  4. from pyecharts.charts import Line #线图
  5. import warnings
  6. warnings.filterwarnings('ignore')
  7. # filter 过滤

1.全局配置:

set_global_opts(title_opts, legend_opts, toolbox_opts, tooltip_opts, datazoom_opts)
当传入数据series无法显示时可以转化为列表在传进去,pd.tolist()

  1. # 示例数据
  2. cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据
  3. data1 = [123,153,89,107,98,23]#设置纵坐标数据
  4. data2 = [56,77,93,68,45,67]#纵坐标
  5. bar = (Bar()
  6. .add_xaxis(cate) #增加x轴
  7. .add_yaxis('电商', data1) #增加y轴
  8. .add_yaxis('门店', data2) #增加y轴
  9. # 全局配置
  10. .set_global_opts(title_opts=opts.TitleOpts(title='手机销售额', subtitle='我是副标题'),#标题
  11. legend_opts=opts.LegendOpts(is_show=True),#图例
  12. toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱
  13. tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框
  14. datazoom_opts=opts.DataZoomOpts(is_show=True) # 缩放选项
  15. ))
  16. # title_opts 设置标题
  17. #z在jupyter notebook 渲染
  18. bar.render_notebook()

重中之重.png

1.全局配置:五个配置

set_global_opts(title_opts, legend_opts, toolbox_opts, tooltip_opts, datazoom_opts)
当传入数据series无法显示时可以转化为列表在传进去,pd.tolist()

  1. """
  2. 全局配置项使用示例:
  3. 1. 标题 & 副标题
  4. 2. 关闭图例
  5. 3. 显示工具箱
  6. """
  7. # 示例数据
  8. cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据
  9. data1 = [123,153,89,107,98,23]#设置纵坐标数据
  10. data2 = [56,77,93,68,45,67]#纵坐标
  11. bar = (Bar()
  12. .add_xaxis(cate) #增加x轴
  13. .add_yaxis('电商', data1) #增加y轴
  14. .add_yaxis('门店', data2) #增加y轴
  15. # 全局配置
  16. .set_global_opts(title_opts=opts.TitleOpts(title='手机销售额', subtitle='我是副标题'),#标题
  17. legend_opts=opts.LegendOpts(is_show=True),#图例
  18. toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱
  19. tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框
  20. datazoom_opts=opts.DataZoomOpts(is_show=True) # 缩放选项
  21. ))
  22. # title_opts 设置标题
  23. #z在jupyter notebook 渲染
  24. bar.render_notebook()

2.系列配置:

控制图表中的文本,线样式,标记等
系列配置项使用示例:
1. 不显示数值 labelopts=opts.LabelOpts(is_show=False),
2. 标记每个系列的最大值 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type
=”max”, name=”最大值”)])

  1. """
  2. 系列配置项使用示例:
  3. 1. 不显示数值 label_opts=opts.LabelOpts(is_show=False),
  4. 2. 标记每个系列的最大值 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")])
  5. """
  6. bar=(Bar()
  7. .add_xaxis(cate)
  8. .add_yaxis('电商',data1)
  9. .add_yaxis('门店', data2)
  10. .set_global_opts(title_opts=opts.TitleOpts(title='xx',subtitle='yy'),
  11. legend_opts=opts.LegendOpts(is_show=True),#图例
  12. toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱
  13. tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框
  14. datazoom_opts=opts.DataZoomOpts(is_show=True))
  15. .set_series_opts(
  16. label_opts=opts.LabelOpts(is_show=True),文本显示
  17. # 标记点设置 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
  18. #标记线设置 markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])
  19. )
  20. )
  21. bar.render_notebook()

自知则知之.png

折线图:

纵坐标里参数:is_smooth=True :折线是否平滑
**

  1. from pyecharts.charts import Line #条状图
  2. from pyecharts import options as opts #导入设置包
  3. cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据
  4. data1 = [123,153,89,107,98,23]#设置纵坐标数据
  5. data2 = [56,77,93,68,45,67]#纵坐标
  6. # smooth 平滑的
  7. line=(Line()
  8. .add_xaxis(cate)
  9. .add_yaxis('电商',data1,is_smooth=True)
  10. .add_yaxis('门店', data2,is_smooth=True)
  11. .set_global_opts(title_opts=opts.TitleOpts(title='销量',subtitle='副标题'),
  12. legend_opts=opts.LegendOpts(is_show=True),#图例
  13. toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱
  14. tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框
  15. datazoom_opts=opts.DataZoomOpts(is_show=True))
  16. .set_series_opts(
  17. label_opts=opts.LabelOpts(is_show=True),
  18. markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),
  19. markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])
  20. )
  21. )
  22. line.render_notebook()

值6.png

漏斗图:funnel 不需要直角坐标系

  1. from pyecharts.charts import Funnel #漏斗图
  2. from pyecharts import options as opts #导入设置包
  3. cat=['访问','注册','加入购物车','提交订单','付款成功']
  4. data=[20111,13745,6345,3667,2865]
  5. funnel = (Funnel()
  6. .add("用户数",
  7. [z for z in zip(cat, data)],
  8. sort_='descending',
  9. label_opts=opts.LabelOpts(position="inside"))
  10. .set_global_opts(
  11. title_opts=opts.TitleOpts(title="Funnel-基本示例", subtitle="我是副标题"),
  12. legend_opts=opts.LegendOpts(is_show=False),
  13. tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'))#提示框)
  14. )
  15. funnel.render_notebook()

在2.png

饼图:pie 南丁格尔图

饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标,默认为 [50, 50]默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
rosetype -> str
是否展示成南丁格尔图,通过半径区分数据大小,有’radius’和’area’两种模式。默认为’radius’radius:扇区圆心角展现数据的百分比,半径展现数据的大小area:所有扇区圆心角相同,仅通过半径展现数据大小

  1. from pyecharts.charts import Pie #条状图
  2. from pyecharts import options as opts #导入设置包
  3. cat=['访问','注册','加入购物车','提交订单','付款成功']
  4. data=[20111,13745,6345,3667,2865]
  5. pie=(Pie()
  6. .add("",
  7. [z for z in zip(cat,data)],
  8. radius=['10%','50%'],
  9. rosetype="radius"#area
  10. )
  11. .set_global_opts(
  12. title_opts=opts.TitleOpts(title='pie',subtitle='dd')
  13. )
  14. .set_series_opts(label_opts=opts.LabelOpts(formatter="{bi}:{d}%")))
  15. pie.render_notebook()

指向.png

地图:map

添加热力图:visualmap_opts

  1. from pyecharts import options as opts
  2. from pyecharts.charts import Map
  3. import random
  4. province=['北京','上海','深圳','吉林','新疆','山西', '河北', '安徽', '河南', '山东','湖南', '四川', '重庆', '黑龙江', '浙江']
  5. data=[[i,random.randint(50,150)] for i in province]
  6. sale_map=(
  7. Map()
  8. .add(
  9. "销量",
  10. data,
  11. maptype="china",
  12. zoom=1
  13. )
  14. .set_global_opts(
  15. title_opts=opts.TitleOpts(title='销售地图',
  16. title_textstyle_opts=opts.TextStyleOpts(color= 'green',font_size=25,padding=50),
  17. pos_left='center'
  18. ),
  19. visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
  20. legend_opts=opts.LegendOpts(is_show=True)
  21. )
  22. # .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%")
  23. # )
  24. )
  25. sale_map.render_notebook()

指的112202514.png

仪表板:

is_clock_wise=False, 控制仪表板的闭合,
start_angle=40 开始值

  1. from pyecharts import options as opts
  2. from pyecharts.charts import Gauge
  3. gauge=(
  4. Gauge()
  5. .add(
  6. "完成率",
  7. [("",66.6),("",30)],
  8. is_clock_wise=False,
  9. # start_angle=40
  10. )
  11. .set_global_opts(title_opts=opts.TitleOpts(title="Gauge")
  12. )
  13. )
  14. gauge.render_notebook()

字典8.png
时间轴:
生成x轴数据,
构造时间线性: Timeline()
遍历生成年的线图,for i in range (2000,2010):
创建线线/条 图: x轴是数据 ,[random.randint(100,200) for _ in cate]
y轴 列表[ ] 遍历每个x轴数据,使用随机数与x轴数据一一对应.
循环完后将 线图添加到 时间线性里,纳入年份i

  1. from pyecharts.charts import Timeline,Line #条状图
  2. from pyecharts import options as opts #导入设置包
  3. import random
  4. # 示例数据
  5. cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据
  6. t1=Timeline()
  7. #遍历生成每年的线图
  8. for i in range(2015,2021):
  9. line=(
  10. Line()
  11. .add_xaxis(cate)
  12. .add_yaxis('商品',[random.randint(100,200) for _ in cate])
  13. .add_yaxis('门店',[random.randint(100,200) for _ in cate])
  14. .set_global_opts(title_opts=opts.TitleOpts(title="手机{}年营业额".format(i)),
  15. # toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical')
  16. )
  17. )
  18. t1.add(line,'{}年'.format(i)) #将循环后的线性图添加到里面,并且传入年份
  19. t1.render_notebook()

啧啧啧3551.png
多图组合:
data=[random.randint(50,150)for _ in province]

  1. from pyecharts import options as opts
  2. from pyecharts.charts import Line, Bar, Grid
  3. import random
  4. city = ['石家庄市','唐山市','秦皇岛市','邯郸市','邢台市','保定市','张家口市','承德市','沧州市','廊坊市','衡水市']
  5. data = [random.randint(100,300) for _ in city]
  6. # 条形图
  7. bar = (Bar()
  8. .add_xaxis(city)
  9. .add_yaxis('营业额', data)
  10. .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
  11. .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
  12. )
  13. # 线图
  14. line = (Line()
  15. .add_xaxis(city)
  16. .add_yaxis('营业额', data,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))
  17. .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%")))
  18. # 网格
  19. grid = (
  20. Grid()
  21. .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
  22. .add(line, grid_opts=opts.GridOpts(pos_top="60%"))
  23. )
  24. grid.render_notebook()

zs143.png
ss19.png