首页 > 编程知识 正文

pyecharts画柱状,pyecharts柱状

时间:2023-05-04 12:04:01 阅读:283443 作者:2960

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、全局配置项里面—配置相关文本

效果图展示

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。