学习目标:

请用一张独立画布,柱形图和折线图融合在同一个坐标系展示表1数据
代码及注释如下:
from pyecharts import options as opts
from pyecharts.charts import Bar, Line
# 通过导入的图表类,创建图标实例
bar = (
Bar()
.add_xaxis(
["{}年".format(i) for i in range(2014, 2022)] # 添加x轴数据
)
.add_yaxis(
"诊疗量(万人次)",[87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215], # 添加y轴数据
yaxis_index=0, # 表示y轴的索引,用于拥有多个y轴的单图表中
color="orange", #柱子的颜色
z=0 # z 方向的高度,决定层叠关系
)
.extend_axis(
yaxis=opts.AxisOpts(
name="同比增速(%)", # 右边y轴名字
type_="value", # y 坐标轴类型,'value':数值轴,适用于连续数据。
min_=-15, # 设置y轴最小值
max_=20, # 设置y轴最大值
position="right", #设置y轴在右边
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color="#d14a61") #y轴的颜色
),
axislabel_opts=opts.LabelOpts(formatter="{value} %"), #y轴标签配置
splitline_opts=opts.SplitLineOpts(is_show=False ),# 分割线配置项,设置不显示x坐标轴
)
)
.extend_axis(
yaxis=opts.AxisOpts(
type_="value", # y 坐标轴类型,'value':数值轴,适用于连续数据。
min_=0, # 设置y轴最小值
max_=140000, # 设置y轴最大值
name="诊疗量(万人次)", # 左边y轴名字
position="left", #设置y轴在左边
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color="#675bba") #y轴的颜色
),
axislabel_opts=opts.LabelOpts(formatter="{value}"), #y轴标签配置
splitline_opts=opts.SplitLineOpts(
is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1) # 分割线配置项,设置显示x坐标轴
),
)
)
.set_global_opts(
yaxis_opts=opts.AxisOpts(is_show=False), # 设置不显示x坐标轴
title_opts=opts.TitleOpts(title="中国中医类医疗卫生机构诊疗量"), # 设置标题
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
# 提示框配置项,trigger触发类型,'axis': 坐标轴触发,axis_pointer_type:指示器类型'cross':十字准星指示器。
legend_opts=opts.LegendOpts(pos_left="35%"),
# 图例配置项, pos_left:图例组件离容器左侧的距离会根据相应的位置自动对齐。
)
)
# 通过导入的图表类,创建图标实例
line = (
Line()
.add_xaxis(["{}年".format(i) for i in range(2014, 2022)]) # 添加x轴数据
.add_yaxis(
"同比增速(%)",[7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66], # 添加y轴数据
yaxis_index=1, # 表示y轴的索引,用于拥有多个y轴的单图表中
color="purple", #线的颜色
symbol_size=15, #图元的大小
)
)
# 渲染柱形和折线图:
overlap = bar.overlap(line)
overlap.render_notebook()
最终效果如下:
