1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Pyecharts之折线图与柱状图组合绘制

Pyecharts之折线图与柱状图组合绘制

时间:2024-01-11 04:38:55

相关推荐

Pyecharts之折线图与柱状图组合绘制

1.下载安装pyecharts

cmd输入

pip install pyecharts

如果是用的pycharm可以直接在Terminal中输入

(如果上述命令没有效果的话,可用下面的命令)

2、学习pyecharts

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

1. 导入库

#导入配置模块from pyecharts import options as opts导入饼图模块from pyecharts.charts import Pie导入主题模块from pyecharts.globals import ThemeType导入柱状图模块from pyecharts.charts import Bar导入折线图模块from pyecharts.charts import Line导入折线图模块from pyecharts.charts import *

导入dandas

import pandas as pd

2. 加载数据

data=pd.read_excel('./疫情历史数据.xls')print(data)

3.准备横轴数据

#pyecharts 不支持 其他类型--->int、float、bool、dict、str、list#将时间列转化为字符串data.loc[:,'时间']=data.loc[:,'时间'].astype('str')print(data.loc[:,'时间'])x_data=data.loc[:,'时间'][::-1].values.tolist()print(x_data)

4.准备纵轴数据

#死亡数death_num=data.loc[:,'死亡数'][::-1].values.tolist()#确诊人数ensue_num=data.loc[:,'确诊数'][::-1].values.tolist()#治愈人数crued_num=data.loc[:,'治愈数'][::-1].values.tolist()#疑似人数suspect_num=data.loc[:,'疑似数'][::-1].values.tolist()

一.使用 bar 绘制死亡数和治愈数的柱状图

a、实例化bar对象

bar=Bar()

b、添加数据

#增加横轴数据bar.add_xaxis(xaxis_data=x_data)#增加纵轴数据bar.add_yaxis(series_name='死亡数',y_axis=death_num,yaxis_index=1,).add_yaxis(series_name='治愈数',y_axis=crued_num,yaxis_index=2, #使用的y轴的index,在单个图表实例中存在多个y轴的时候有用)

# c.添加 额外的坐标轴bar.extend_axis(# 对y轴配置yaxis=opts.AxisOpts(type_='value',#value 代表数据轴 ,category 代表类目轴,time代表时间轴name='死亡数', #轴的名称is_show=True,#展示该轴min_=0, #轴刻度的最小值max_=1300,#轴刻度的最大值position='right',# 轴线配置axisline_opts=opts.AxisLineOpts(is_show=True,#显示轴线# 轴线风格linestyle_opts=opts.LineStyleOpts(color='#a5a391',)),#轴线对应的标签axislabel_opts=opts.LabelOpts(formatter='{value}', #轴线对应的标签 ----{value}---数据)))bar.extend_axis(# 对y轴配置yaxis=opts.AxisOpts(type_='value',#value 代表数据轴 ,category 代表类目轴,time代表时间轴name='治愈数', #轴的名称is_show=True,#展示该轴min_=0, #轴刻度的最小值max_=1300,#轴刻度的最大值position='right',offset=50, #轴线偏移# 轴线配置axisline_opts=opts.AxisLineOpts(is_show=True, # 显示轴线# 轴线风格linestyle_opts=opts.LineStyleOpts(color='#fd5956',)),#轴线对应的标签axislabel_opts=opts.LabelOpts(formatter='{value}', # 轴线对应的标签 ----{value}---数据)))bar.extend_axis(# 对y轴配置yaxis=opts.AxisOpts(type_='value',name='确诊数',position='left',min_=0,max_=30000,# 轴线配置axisline_opts=opts.AxisLineOpts(is_show=True, # 显示轴线# 轴线风格linestyle_opts=opts.LineStyleOpts(color='#fd5956',)),#轴线对应的标签axislabel_opts=opts.LabelOpts(formatter='{value}', # 轴线对应的标签 ----{value}---数据)))

d.添加全局配置

bar.set_global_opts(title_opts=opts.TitleOpts(title='中国疫情变化趋势',#标题subtitle='中共就业调研室',#子标题# 设置标题样式subtitle_textstyle_opts=opts.TextStyleOpts(font_size=12,width=1.5,

),pos_left='3%',#title位置pos_top='5%'),# 图例设置legend_opts=opts.LegendOpts(pos_top='7%', #图例位置pos_left='25%',),# 提示款tooltip_opts=opts.TooltipOpts(trigger='axis', # 'axis': 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用axis_pointer_type='cross', # 'cross':十字准星指示器。其实是种简写,表示启用两个正交的轴的 axisPointer。),# 对纵轴的全局配置yaxis_opts=opts.AxisOpts(type_='value',name='疑似数',position='right',min_=0,max_=30000,offset=100,# 轴线配置axisline_opts=opts.AxisLineOpts(is_show=True, # 显示轴线# 轴线风格linestyle_opts=opts.LineStyleOpts(color='#fed0fc',)),#轴线对应的标签axislabel_opts=opts.LabelOpts(formatter='{value}', # 轴线对应的标签 ----{value}---数据)),# 插入文本框graphic_opts=opts.GraphicGroup(# 图形的配置项graphic_item=opts.GraphicItem(# 控制整体的位置-right="50px",top="300px"),children=[# 配置文本opts.GraphicText(# 配置文本的位置graphic_item=opts.GraphicItem(left='center',top='middle',z=100,#显示位置scale=[1.2,1.2], #表示缩放),graphic_textstyle_opts=opts.GraphicTextStyleOpts(text='直到{},\n全国的新冠肺炎病毒的相关信息为:\n''死亡病例为{}例,\n''治愈病例为{}例\n''确诊病例为{}例\n''疑似病例为{}例,专家呼吁\n广大市民积极配合国家政策进行疫情防护工作'.format(data.loc[0,'时间'],data.loc[0,'死亡数'],data.loc[0,'治愈数'],data.loc[0,'确诊数'],data.loc[0,'疑似数']),font='15px Microsoft YaHei',text_align='left',text_vertical_align='middle', #垂直对齐方式# 图形基本配置项graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill='back',#颜色line_width=1.2, #字体的宽度))),])

)

e.添加系列配置

bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True),#显示标签)

二.绘制折线图

#绘制line_ensur=Line()

1、 绘制 确诊数折线图

#添加横轴line_ensur.add_xaxis(x_data)#添加纵轴line_ensur.add_yaxis(series_name='确诊数',y_axis=ensue_num,color='#4b0101',label_opts=opts.LabelOpts(is_show=False,),# 线配置linestyle_opts=opts.LineStyleOpts(width=1.2,color='#4b0101',))

2.绘制 疑似折线图

line_suspect=Line()#a.添加横轴line_suspect.add_xaxis(x_data)#b.添加纵轴line_suspect.add_yaxis(series_name='疑似数',y_axis=suspect_num,color='#fed0fc',yaxis_index=3,# 标签配置label_opts=opts.LabelOpts(is_show=False),# 线配置linestyle_opts=opts.LineStyleOpts(width=1.2,color='#fed0fc'))

3.将 折线图 与 柱状图进行组合 —Overlap

all=bar.overlap(line_ensur).overlap(line_suspect)

a.组合

aa=Grid(#画布配置init_opts=opts.InitOpts(width="1500px", #图的大小height='650px',))aa.add(all,#网格配置grid_opts=opts.GridOpts(pos_top="20%",pos_left="5%",pos_right="40%",),# 索引is_control_axis_index=True #控制索引)

b.生成html

aa.render('./疫情数据.html')

c.总结

1、绘制2个柱状图 —应该添加 3个新纵轴、 修改1个原来的纵轴(全局配置项)

2、绘制1个折线图

3、再绘制1个折线图

4、overlap 组合 ----层叠

5、控制 多个图表大小、主题 —overlap组合多个图表 加入到 Grid组合

6、全局配置项里面—配置相关文本

效果图展示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。