一、pyecharts的安装
pycharm可以直接在Terminal终端中输入,通过pip install安装pyecharts
pip install pyecharts
二、认识配置项
pyecharts遵循”先配置后使用”的基本原则。pyecharts options模块中包含众多关于定制图表组件及样式的配置项。按照配置内容的不同,配置项可以分为全局配置项和系列配置项。
语法格式如下:
set_global_opts(self, title_opts=opts.TitleOpts(),
legend_opts=opts.LegendOpts(),
tooltip_opts=None, toolbox_opts=None, brush_opts=None,
xaxis_opts=None,yaxis_opts=None,visualmap_opts=None,
datazoom_opts=None,graphic_opts=None,axispointer_opts=None)
title_opts | 表示标题组件的配置项 |
legend_opts | 表示图例组件的配置项 |
tooltip_opts | 表示提示框组件的配置项 |
toolbox_opts | 表示工具箱组件的配置项 |
brush_opts | 表示区域选择组件的配置项 |
xaxis_opts,yaxis_opts | 表示x轴、y轴的配置项 |
visualmap_opts | 表示视觉映射组件的配置项 |
datazoom_opts | 表示数据区域缩放组件的配置项 |
2、add_yaxis()方法的语法格式如下所示:
add_yaxis(self, series_name,y_axis, is_selected=True,
is_connect_nones=False,xaxis_index=None,yaxis_index=None,color=None, is_symbol_show=True,symbol=None,symbol_size=4, stack=None,
is_smooth=False,is_step=False, is_hover_animation=True, markpoint_opts=None,markline_opts=None,tooltip_opts=None,
label_opts=opts.Label0pts (), linestyle_opts=opts.LineStyleOpts (), areastyle_opts=opts.AreaStyle0pts(), itemstyle_opts= None)
该函数常用的参数含义如下
series_name | 表示系列的名称,显示于提示框和图例中 |
y_axis | 表示系列数据 |
xaxis_index | 表示x轴的索引,用于拥有多个x轴的单图表中 |
yaxis_index | 表示y轴的索引,用于拥有多个y轴的单图表中 |
color | 表示系列的注释文本的颜色 |
is_symbol_show | 表示是否显示标记及注释文本,默认为 True |
symbol | 表示标记的图形,可以取值为'circle'(圆形)、'rect'(矩形)、'roundRect(圆角矩形)、'triangle' (三角形)、'diamond'( 菱形)、'pin'( 大头针)、'arrow'( 箭头)、'none'(无) |
symbol_size | 表示标记的大小,可以接收单一数值,也可以接收形如[width,height]的数组 |
stack | 表示将轴上同一类目的数据堆叠放置 |
is_smooth | 表示是否使用平滑曲线 |
is_step | 表示是否显示为阶梯图 |
三、准备数据
四、代码如下
#导入模块
from pyecharts.charts import Bar, Line
from pyecharts import options as opts
#准备数据
x_data=["2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年"]
value_1=[87430, 90912, 96225, 101885, 107147, 116390 ,105764 , 120215]
value_2=[7.40 , 4.00 , 4.00 , 5.81 , 5.16 , 8.63 , -9.13 , 13.66]
bar=(
Bar(init_opts=opts.InitOpts(width='1000px', height='500px'))
.add_xaxis(x_data)
.add_yaxis(
y_axis=value_1,
yaxis_index=1, #表示y轴的索引,用于拥有多个y轴的单图表中。
series_name='诊疗量(万人次)', #图例名:诊疗量(万人次)
z=0,#因为折线图会被柱状图遮挡,所以把柱形图置底
label_opts=opts.LabelOpts(is_show=False),
)
.extend_axis(
yaxis=opts.AxisOpts(
name='诊疗量(万人次)',# 柱形图y轴名称
type_='value',
position='left',# 柱形图y轴在左边显示
)
)
.extend_axis(
yaxis=opts.AxisOpts(
name='同比增速(%)',# 折线图y轴名称
type_='value',
position='right',# 折线图y轴在右边显示
)
)
.set_global_opts( #设置全局配置项
title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量'), #标题名称
legend_opts=opts.LegendOpts(pos_left='40%' ), #图例距离左边边距:40%
tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'), #显示提示框组件
toolbox_opts=opts.ToolboxOpts(is_show=True) #显示工具栏
)
)
line = (
Line() #创建Line类的对象
.add_xaxis(x_data) #添加x轴的数据
.add_yaxis(
series_name='同比增速(%)', #图例名:同比增速(%)
y_axis=value_2, #y轴折线图数据
yaxis_index=2, #表示y轴的索引
)
)
#渲染成html网页
bar.overlap(line).render("cpk.html")
五、运行结果