1.安装pyecharts镜像:
通过在anaconda prompt工具,安装pyecharts:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
2.pyecharts配置项:
2.1 全局配置项:
- title_opts :表示标题组件的配置项。
- legend_opts:表示图例组件的配置项。
- tooltip_opts : 表示提示框组件的配置项。
- toolbox_opts :表示工具箱组件的配置项。
- brush_opts:表示区域选择组件的配置项。
- xaxis_opts,yaxis_opts:表示x轴、y轴的配置项。
- visualmap_opts :表示视觉映射组件的配置项。
- datazoom_opts :表示数据区域缩放组件的配置项。
2.2 系列配置项:
- ItemStyleOpta 图元样式配置项
- TextStyleOpts 文本样式配置项
- LabelOpta 标签配置项
- LineStyloOpts 线条样式配置项
- SplitLineOpts 分割线配置项
- MarkPointOpta 标记点配置项
- MarkLineOpts 标记线配置项
- Mark AreaOpts 标记区域配置项
- EffectOpts 涟漪特效配置项
- AreaStyleOpta 区域填充样式配置项
- SplitAreaOpts 分隔区域配置项
- GridOpts 直角坐标系网格配置项
3.使用pyecharts绘制图表:
数据示例:
年份(年) | 诊疗量(万人次) | 同比增速(%) |
---|---|---|
2014 | 87430 | 7.40 |
2015 | 90912 | 4.00 |
2016 | 96225 | 5.83 |
2017 | 101885 | 5.81 |
2018 | 107147 | 5.16 |
2019 | 116390 | 8.63 |
2020 | 105764 | -9.13 |
2021 | 120215 | 13.66 |
相关代码如下:
#导入模块:
import pyecharts.options as opts
from pyecharts.charts import Bar, Line
#准备数据:
x_data = ["2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年"]
value1 =[87430, 90912,96225,101885,107147,116390,105764,120215]
value2 = [7.40,4.00,5.83,5.81,5.16,8.63,-9.31,13.66]
#设置标签名:
legend_list = ["诊疗量(万人次)", "同比增速(%)"]
#链式调用:
bar = (
Bar(init_opts=opts.InitOpts(width="1000px", height="500px")) #设置柱形图宽度与高度
.add_xaxis(xaxis_data=x_data) #添加x轴的数据
.add_yaxis(
series_name="诊疗量(万人次)", #设置图例名:诊疗量(万人次)
y_axis=value1,
yaxis_index=1,
color="#FF8C00 ",
label_opts=opts.LabelOpts(is_show=False),
)
.extend_axis(
yaxis=opts.AxisOpts(
name="诊疗量(万人次)", #设置y轴名称
type_="value",
min_=0, #设置y轴最小值为0
max_=150000, #设置y轴最大值为150000
position="left" #位于y轴左侧
)
)
.extend_axis(
yaxis=opts.AxisOpts(
name="同比增速(%)", #设置y轴名称
type_="value",
min_=-20, #设置y轴最小值为-20
max_=20, #设置y轴最大值为20
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"), #显示提示框组件
)
.set_series_opts(
itemstyle_opts=opts.ItemStyleOpts(
opacity=0.5), #设置柱形图透明度为0.5
)
)
line = (
Line() #创建Line类的对象
.add_xaxis(x_data) #添加x轴的数据
.add_yaxis(
series_name="同比增速(%)", #设置图例名:同比增速(%)
y_axis=value2,
yaxis_index=2,
# linestyle_opts=opts.LineStyleOpts(width=2), #设置折线图宽度为2
)
)
#渲染柱形-折线图搭到notebook中:
bar.overlap(line).render_notebook()
代码运行如下所示:
完整代码如下所示:
import pyecharts.options as opts from pyecharts.charts import Bar, Line x_data = ["2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年"] value1 =[87430, 90912,96225,101885,107147,116390,105764,120215] value2 = [7.40,4.00,5.83,5.81,5.16,8.63,-9.31,13.66] legend_list = ["诊疗量(万人次)", "同比增速(%)"] bar = ( Bar(init_opts=opts.InitOpts(width="1000px", height="500px")) #设置柱形图宽度与高度 .add_xaxis(xaxis_data=x_data) #添加x轴的数据 .add_yaxis( series_name="诊疗量(万人次)", #设置图例名:诊疗量(万人次) y_axis=value1, yaxis_index=1, color="#FF8C00 ", label_opts=opts.LabelOpts(is_show=False), ) .extend_axis( yaxis=opts.AxisOpts( name="诊疗量(万人次)", #设置y轴名称 type_="value", min_=0, #设置y轴最小值为0 max_=150000, #设置y轴最大值为150000 position="left" #位于y轴左侧 ) ) .extend_axis( yaxis=opts.AxisOpts( name="同比增速(%)", #设置y轴名称 type_="value", min_=-20, #设置y轴最小值为-20 max_=20, #设置y轴最大值为20 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"), #显示提示框组件 ) .set_series_opts( itemstyle_opts=opts.ItemStyleOpts( opacity=0.5), #设置柱形图透明度为0.5 ) ) line = ( Line() #创建Line类的对象 .add_xaxis(x_data) #添加x轴的数据 .add_yaxis( series_name="同比增速(%)", #设置图例名:同比增速(%) y_axis=value2, yaxis_index=2, # linestyle_opts=opts.LineStyleOpts(width=2), #设置折线图宽度为2 ) ) bar.overlap(line).render_notebook()
更多使用方法请参考pyecharts库详解官方文档