pyecharts_1.ipynb
单词: filter 过滤
导入3个包: 形状,设置包,消除警告
数据是可迭代的对象,一 一对应.可是是列表或者租
# 基于python的电子表格from pyecharts.charts import Bar #条状图from pyecharts import options as opts #导入设置包from pyecharts.charts import Line #线图import warningswarnings.filterwarnings('ignore')# filter 过滤
1.全局配置:
set_global_opts(title_opts, legend_opts, toolbox_opts, tooltip_opts, datazoom_opts)
当传入数据series无法显示时可以转化为列表在传进去,pd.tolist()
# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据data1 = [123,153,89,107,98,23]#设置纵坐标数据data2 = [56,77,93,68,45,67]#纵坐标bar = (Bar().add_xaxis(cate) #增加x轴.add_yaxis('电商', data1) #增加y轴.add_yaxis('门店', data2) #增加y轴# 全局配置.set_global_opts(title_opts=opts.TitleOpts(title='手机销售额', subtitle='我是副标题'),#标题legend_opts=opts.LegendOpts(is_show=True),#图例toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框datazoom_opts=opts.DataZoomOpts(is_show=True) # 缩放选项))# title_opts 设置标题#z在jupyter notebook 渲染bar.render_notebook()
1.全局配置:五个配置
set_global_opts(title_opts, legend_opts, toolbox_opts, tooltip_opts, datazoom_opts)
当传入数据series无法显示时可以转化为列表在传进去,pd.tolist()
"""全局配置项使用示例:1. 标题 & 副标题2. 关闭图例3. 显示工具箱"""# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据data1 = [123,153,89,107,98,23]#设置纵坐标数据data2 = [56,77,93,68,45,67]#纵坐标bar = (Bar().add_xaxis(cate) #增加x轴.add_yaxis('电商', data1) #增加y轴.add_yaxis('门店', data2) #增加y轴# 全局配置.set_global_opts(title_opts=opts.TitleOpts(title='手机销售额', subtitle='我是副标题'),#标题legend_opts=opts.LegendOpts(is_show=True),#图例toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框datazoom_opts=opts.DataZoomOpts(is_show=True) # 缩放选项))# title_opts 设置标题#z在jupyter notebook 渲染bar.render_notebook()
2.系列配置:
控制图表中的文本,线样式,标记等
系列配置项使用示例:
1. 不显示数值 labelopts=opts.LabelOpts(is_show=False),
2. 标记每个系列的最大值 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type=”max”, name=”最大值”)])
"""系列配置项使用示例:1. 不显示数值 label_opts=opts.LabelOpts(is_show=False),2. 标记每个系列的最大值 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")])"""bar=(Bar().add_xaxis(cate).add_yaxis('电商',data1).add_yaxis('门店', data2).set_global_opts(title_opts=opts.TitleOpts(title='xx',subtitle='yy'),legend_opts=opts.LegendOpts(is_show=True),#图例toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框datazoom_opts=opts.DataZoomOpts(is_show=True)).set_series_opts(label_opts=opts.LabelOpts(is_show=True),文本显示# 标记点设置 markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),#标记线设置 markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])))bar.render_notebook()

折线图:
纵坐标里参数:is_smooth=True :折线是否平滑
**
from pyecharts.charts import Line #条状图from pyecharts import options as opts #导入设置包cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据data1 = [123,153,89,107,98,23]#设置纵坐标数据data2 = [56,77,93,68,45,67]#纵坐标# smooth 平滑的line=(Line().add_xaxis(cate).add_yaxis('电商',data1,is_smooth=True).add_yaxis('门店', data2,is_smooth=True).set_global_opts(title_opts=opts.TitleOpts(title='销量',subtitle='副标题'),legend_opts=opts.LegendOpts(is_show=True),#图例toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical'),#工具箱tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'),#提示框datazoom_opts=opts.DataZoomOpts(is_show=True)).set_series_opts(label_opts=opts.LabelOpts(is_show=True),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max',name='最大值')]),markline_opts=opts.MarkLineOpts(data=[opts.MarkPointItem(type_='min',name='最小值')])))line.render_notebook()
漏斗图:funnel 不需要直角坐标系
from pyecharts.charts import Funnel #漏斗图from pyecharts import options as opts #导入设置包cat=['访问','注册','加入购物车','提交订单','付款成功']data=[20111,13745,6345,3667,2865]funnel = (Funnel().add("用户数",[z for z in zip(cat, data)],sort_='descending',label_opts=opts.LabelOpts(position="inside")).set_global_opts(title_opts=opts.TitleOpts(title="Funnel-基本示例", subtitle="我是副标题"),legend_opts=opts.LegendOpts(is_show=False),tooltip_opts = opts.TooltipOpts(is_show=True, background_color='pink'))#提示框))funnel.render_notebook()
饼图:pie 南丁格尔图
饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标,默认为 [50, 50]默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
rosetype -> str
是否展示成南丁格尔图,通过半径区分数据大小,有’radius’和’area’两种模式。默认为’radius’radius:扇区圆心角展现数据的百分比,半径展现数据的大小area:所有扇区圆心角相同,仅通过半径展现数据大小
from pyecharts.charts import Pie #条状图from pyecharts import options as opts #导入设置包cat=['访问','注册','加入购物车','提交订单','付款成功']data=[20111,13745,6345,3667,2865]pie=(Pie().add("",[z for z in zip(cat,data)],radius=['10%','50%'],rosetype="radius"#area).set_global_opts(title_opts=opts.TitleOpts(title='pie',subtitle='dd')).set_series_opts(label_opts=opts.LabelOpts(formatter="{bi}:{d}%")))pie.render_notebook()
地图:map
添加热力图:visualmap_opts
from pyecharts import options as optsfrom pyecharts.charts import Mapimport randomprovince=['北京','上海','深圳','吉林','新疆','山西', '河北', '安徽', '河南', '山东','湖南', '四川', '重庆', '黑龙江', '浙江']data=[[i,random.randint(50,150)] for i in province]sale_map=(Map().add("销量",data,maptype="china",zoom=1).set_global_opts(title_opts=opts.TitleOpts(title='销售地图',title_textstyle_opts=opts.TextStyleOpts(color= 'green',font_size=25,padding=50),pos_left='center'),visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),legend_opts=opts.LegendOpts(is_show=True))# .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%")# ))sale_map.render_notebook()

仪表板:
is_clock_wise=False, 控制仪表板的闭合,
start_angle=40 开始值
from pyecharts import options as optsfrom pyecharts.charts import Gaugegauge=(Gauge().add("完成率",[("",66.6),("",30)],is_clock_wise=False,# start_angle=40).set_global_opts(title_opts=opts.TitleOpts(title="Gauge")))gauge.render_notebook()

时间轴:
生成x轴数据,
构造时间线性: Timeline()
遍历生成年的线图,for i in range (2000,2010):
创建线线/条 图: x轴是数据 ,[random.randint(100,200) for _ in cate]
y轴 列表[ ] 遍历每个x轴数据,使用随机数与x轴数据一一对应.
循环完后将 线图添加到 时间线性里,纳入年份i
from pyecharts.charts import Timeline,Line #条状图from pyecharts import options as opts #导入设置包import random# 示例数据cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] # 横坐标数据t1=Timeline()#遍历生成每年的线图for i in range(2015,2021):line=(Line().add_xaxis(cate).add_yaxis('商品',[random.randint(100,200) for _ in cate]).add_yaxis('门店',[random.randint(100,200) for _ in cate]).set_global_opts(title_opts=opts.TitleOpts(title="手机{}年营业额".format(i)),# toolbox_opts=opts.ToolboxOpts(pos_left='90%',orient = 'vertical')))t1.add(line,'{}年'.format(i)) #将循环后的线性图添加到里面,并且传入年份t1.render_notebook()

多图组合:
data=[random.randint(50,150)for _ in province]
from pyecharts import options as optsfrom pyecharts.charts import Line, Bar, Gridimport randomcity = ['石家庄市','唐山市','秦皇岛市','邯郸市','邢台市','保定市','张家口市','承德市','沧州市','廊坊市','衡水市']data = [random.randint(100,300) for _ in city]# 条形图bar = (Bar().add_xaxis(city).add_yaxis('营业额', data).set_series_opts(label_opts=opts.LabelOpts(is_show=True)).set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar")))# 线图line = (Line().add_xaxis(city).add_yaxis('营业额', data,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])).set_global_opts(title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%")))# 网格grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%")).add(line, grid_opts=opts.GridOpts(pos_top="60%")))grid.render_notebook()


