请基于pyecharts,用一张独立画布,柱形图和折线图融合在同一个坐标系展示表1数据。
pyecharts官网:https://pyecharts.org/#/zh-cn/intro
全局配置项可通过 set_global_opts 方法设置
TooltipOpts:提示框配置项
AxisOpts:坐标轴配置项
TitleOpts:标题配置项
LegendOpts:图列配置项
系统配置项可通过set_series_opts 方法设置
Bar:柱状图
Line:折线图
代码中关于Bar和Line方法的运用,可查https://pyecharts.org/#/zh-cn/intro网址进行对比运用
import pyecharts.options as opts
from pyecharts.charts import Bar, Line
x_data = ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021"]#准备数据
bar = (
Bar()
.add_xaxis(xaxis_data=x_data)# 导入系列数据
.add_yaxis(
series_name="诊疗量(万人次)",# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
y_axis=[87430,90912,96225,101885,107147,116390,105764,120215],# 系列数据
label_opts=opts.LabelOpts(is_show=False), # 是否显示数据标签
)
.extend_axis(
yaxis=opts.AxisOpts( #新增 Y 坐标轴配置项
name="同比增速", #新增 Y 坐标名字
type_="value", # 'value': 数值轴,适用于连续数据。
min_=-15, #坐标轴最小值
max_=16, #坐标轴最大值
axislabel_opts=opts.LabelOpts(formatter="{value} %"),#LabelOpts:标签配置项
)
)
.set_global_opts( #全局配置项可通过 set_global_opts 方法设置
tooltip_opts=opts.TooltipOpts( #TooltipOpts:提示框配置项
is_show=True, trigger="axis", axis_pointer_type="cross" #is_show是否显示,trigger坐标轴触发,指示器类型:十字准星
),
xaxis_opts=opts.AxisOpts(
type_="category",
axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
),
yaxis_opts=opts.AxisOpts(
name="诊疗量",
type_="value",
min_=60000,
max_=150000,
axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量'),
legend_opts=opts.LegendOpts(pos_left='45%' ),# 图例组件离容器左侧的距离45%。
)
.set_series_opts( #系统配置项
itemstyle_opts=opts.ItemStyleOpts(
opacity=0.5))#柱状图透明度
)
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="同比增速(%)",
yaxis_index=1,#在单个图表实例中存在多个 y 轴的时候有用。这里就是用于第一个y轴
y_axis=[7.40,4.00,5.83,5.81,5.16,8.63,-9.13,13.66],#数据
label_opts=opts.LabelOpts(is_show=True),
)
)
bar.overlap(line).render_notebook()