pyecharts重叠两种图(柱状+折线)

首先官网文档就有
https://pyecharts.org/#/zh-cn/composite_charts
官网的例子是折线图+柱状图×2
http://gallery.pyecharts.org/#/Grid/grid_multi_yaxis
在这里插入图片描述
当然,如果你的柱状图只有一类的话,稍作修改即可,如下

from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line

x_data = ["{}月".format(i) for i in range(1, 13)]
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis(
        "蒸发量",
        [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        yaxis_index=0,
        color="#5793f3",    #稍微修改下颜色
    )
#删除掉额外的柱状分类
#     .add_yaxis(
#         "降水量",
#         [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
#         yaxis_index=1,
#         color="#5793f3",
#     )
#删除掉多余的Y轴设置(删除了降水量,同时删除一个Y轴,删哪个无所谓,后面配置即可)
#     .extend_axis(
#         yaxis=opts.AxisOpts(
#             name="蒸发量",
#             type_="value",
#             min_=0,
#             max_=250,
#             position="right",
#             axisline_opts=opts.AxisLineOpts(
#                 linestyle_opts=opts.LineStyleOpts(color="#d14a61")
#             ),
#             axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
#         )
#     )
    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            name="温度",
            min_=0,
            max_=25,
            position="left",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#d14a61")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
            ),
        )
    )
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(
            name="蒸发量",    #我们删除了降水保留了蒸发,这里改为蒸发量
            min_=0,
            max_=250,
            position="right",
            offset=0,    #这里是Y轴间距,由80改为0即两个Y轴重合,当然我们已经删除了原来的一个Y轴,所以相当于把第二Y轴左移
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#5793f3")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        ),
        title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
    )
)

line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis(
        "平均温度",
        [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
        yaxis_index=1,    #删了一个Y轴,Y轴索引由2改为1
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    )
)

bar.overlap(line)
grid = Grid()
grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"), is_control_axis_index=True)
grid.render_notebook()

结果

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值