使用pyecharts在同一坐标系下绘制柱形图和折线图

题目:

请用一张独立画布,柱形图和折线图融合在同一个坐标系展示表1数据

注释: 

【pyecharts绘图思路】

  1. 导入需要用到的图表类(Bar,Line,Scatter,Pie)
  2. 准备数据(数据爬取-数据清洗-数据结构化): 数据格式要符合传参的需求
  3. 通过导入的图表类,创建图表实例
  4. 往图表实例填充数据,即完成绘图
  5. 设置“系列配置项”和“全局配置项”--> 可做可不做(类似于matplotlib的:图表辅助元素的定制和样式美化)
  6. 展示图表(渲染图表)

pyecharts 的 Line类表示折线图,该类中提供了一个add_yaxis()方法,使用add_yaxis()方法可以为折线图添加数据和配置项。add_yaxis0方法的语法格式如下所示:
add_yaxis(self, series_name,y_axis, is_selected=True,
is_connect_nones=False,xaxis_index=None,yaxis_index=None,color=None, is_symbol_show=True,symbol=None,symbol_size=4, stack=None, is_smooth=False,is_step=False, is_hover_animation=True, markpoint_opts=None,markline_opts=None,tooltip_opts=None,
label_opts=opts.Label0pts (), linestyle_opts=opts.LineStyleOpts (), areastyle_opts=opts.AreaStyle0pts(), itemstyle_opts= None)
该方法常用参数的含义如下。
·series_name :表示系列的名称,显示于提示框和图例中。·y_axis : 表示系列数据。
·xaxis_index:表示x轴的索引,用于拥有多个x轴的单图表中。·yaxis_index:表示y轴的索引,用于拥有多个y轴的单图表中。.color :表示系列的注释文本的颜色。
is_symbol_show:表示是否显示标记及注释文本,默认为 True。

·symbol:表示标记的图形,可以取值为'circle'(圆形)、'rect'(矩形)、'roundRect(圆角矩形)、'triangle'(三角形)、'diamond'( 菱形)、'pin'( 大头针)、'arrow'( 箭头)、'none'(无)。 symbol_size:表示标记的大小,可以接收单一数值,也可以接收形如[width,height]的数组。
·stack :表示将轴上同一类目的数据堆叠放置。·is_smooth :表示是否使用平滑曲线。·is_step :表示是否显示为阶梯图。

在系列配置项中,有些配置项里面的参数只能在set_global_opts中生效,有些配置项里面的参数却只能在set_series_opts中生效。

pyecharts常用图表类型有两种

  1. 带x轴和y轴的直角坐标系图表:柱形图、折线图、散点图、箱型图
  2. 不带x轴和y轴的图表: 饼图、词云图、雷达图、桑基图

代码如下:

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

Bar(init_opts=opts.InitOpts(width='950px', height='600px'))#指定画布大小
x_data = ["{}年".format(i) for i in range(2014, 2022)]#设置x轴
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis(       
        "诊疗量(万人次)",
        [87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215],
        yaxis_index=1,
        label_opts=opts.LabelOpts(is_show=False),
        color="green",
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="诊疗量(万人次)",
            type_="value",
            min_=0,
            max_=150000,
            position="left",              
        )
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            type_="value",
            name="同比增速(%)",
            min_=-10,
            max_=15,
            position="right",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="orange")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value} %"),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)
            ),
        )
    )
)
#设置标题和图例
bar.set_global_opts(
                    title_opts=opts.TitleOpts(title="2014-2021年中国中医类医疗卫生机构诊疗量"),
    legend_opts=opts.LegendOpts(pos_left='42%' ),#图例距离标题边距:42%
)

line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis(
        "同比增速(%)",
        [7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66],
        yaxis_index=2,
        color="orange",
        z=2        
    )
)

#bar.overlap(line)
bar.overlap(line).render_notebook()#渲染到notebook中

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值