绘制一个融合在同一个坐标系的柱形图和折线图

本文介绍了如何使用Python库Pyecharts创建一个包含柱状图和折线图的多轴图表,展示中国中医类医疗卫生机构2014年至2021年的诊疗量及其同比增长数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

请用一张独立画布,柱形图和折线图融合在同一个坐标系展示表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()

最终效果如下:

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值