使用pyecharts绘制合并图表——柱形图和折线图

pyecharts概述       

       自2013年6月百度EFE(Excellent FrontEnd)数据可视化团队研发的ECharts 1.0发布到GitHub网站以来,ECharts一直备受业界权威的关注并获得广泛好评,成为目前成熟且流行的数据可视化图表工具,被应用到诸多数据可视化的开发领域。Python作为数据分析领域最受欢迎的语言,也加入ECharts的使用行列,并研发出方便Python开发者使用的数据可视化工具,由此便诞生了pyecharts库。
       pyecharts是一个针对Python用户开发的、用于生成ECharts图表的库,与matplotlib相比,pyecharts具有以下优势:  
(1)简洁的API使开发者使用起来非常便捷,且支持链式调用。
(2)程序可在主流的Jupyter Notebook或JupyterLab工具上运行。
(3)程序可以轻松地集成至Flask、Sanic、Django等主流的Web框架中。
(4)灵活的配置项可以轻松搭配出精美的图表。
(5)详细的文档和示例可以帮助开发者快速地上手。
(6)400多个地图文件、原生百度地图为地理数据可视化提供强有力的支撑。

实操 

一、导入pyecharts模块 

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

 # Bar, Line表示引用柱形图和折线图。

二、准备数据 

x_data = ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021']

三、创建Bar类对象

bar = (
    Bar()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="诊疗量",    # 此处为设置图例配置项的名称
        y_axis=[87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215],
        label_opts=opts.LabelOpts(is_show=False),   # 此处将标签配置项隐藏
        z=0     # 因为折线图会被柱状图遮挡,所以此处把柱状图置底
    )

    .extend_axis(
        yaxis=opts.AxisOpts(
            name="同比增速(%)",
            type_="value",
            min_=-20,      # 刻度标签的最大值
            max_=20,       # 刻度标签的最小值
            interval=10,   # 步长
            axislabel_opts=opts.LabelOpts(formatter="{value} %"),  # 设置刻度标签的单位
        )
    )
    
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(   
            is_show=True, trigger="axis", axis_pointer_type="cross"
        ),     # 设置提示框配置项,触发类型为坐标轴类型,指示器类型为"cross"
        xaxis_opts=opts.AxisOpts(
            type_="category",
            axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
        ),     # 设置x轴配置项为类目轴,适用于离散的类目数据      
        yaxis_opts=opts.AxisOpts(
            name="诊疗量(万人次)",
            type_="value",
            min_=0,          # 刻度标签的最大值 
            max_=150000,     # 刻度标签的最小值
            interval=50000,  # 步长
            axislabel_opts=opts.LabelOpts(formatter="{value} 万人"),  # 设置刻度标签的单位
            axistick_opts=opts.AxisTickOpts(is_show=True),           # 显示坐标轴刻度
            splitline_opts=opts.SplitLineOpts(is_show=True),         # 显示分割线
        ),
        title_opts=opts.TitleOpts(
            is_show=True, title="2014-2021年中国中医类医疗卫生机构诊疗量", pos_left="center"
        ),     # 设置标题并将其居中
        legend_opts=opts.LegendOpts(  
            pos_right="right",  
            pos_bottom="bottom"  
        ),  # 设置图例配置项,并将其放在右下角
    )
)

 # .add_xaxis()和.add_yaxis():为柱形图添加x轴和y轴的数据
# .extend_axis:拓展x/y轴
# .set_global_opts:设置全局配置项(全局配置项是一些针对图表通用属性的配置项,包括初始化属性、标题组件、图例组件、工具箱组件、视觉映射组件、提示框组件、数据区域缩放组件,其中每个配置项都对应一个类。pyecharts的全局配置项如下表所示)

四、创建Line类对象 

line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="同比增速",
        yaxis_index=1,
        y_axis=[7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66],
        label_opts=opts.LabelOpts(is_show=False),
        symbol="triangle",
        symbol_size=20,
    )
    .set_series_opts(
        linestyle_opts=opts.LineStyleOpts(width= 4)
    )   # 设置线条宽度为4
)

 # .set_series_opts:设置系列配置项(系列配置项是一些针对图表特定元素属性的配置项,包括图元样式、文本样式、标签、线条样式、标记样式、填充样式等,其中每个配置项都对应一个类。pyecharts的系列配置项如下表所示)

                                                               

五、将图表渲染到HTML文件 

bar.overlap(line).render("mixed_bar_and_line.html")

 # 除了使用render()方法渲染图表,还可以使用render_notebook()方法将图表渲染到Jupyter Notebook工具中。

运行结果 

pyecharts绘制柱状折线组合图可以使用Bar和Line两个类进行绘制,具体步骤如下: 1. 首先导入所需的库和模块。 2. 准备横轴数据。 3. 创建Bar对象,并设置主题。 4. 使用add_xaxis方法设置横轴数据。 5. 使用add_yaxis方法添加柱状图的数据。 6. 创建Line对象。 7. 使用add_xaxis方法设置横轴数据。 8. 使用add_yaxis方法添加折线图的数据。 9. 使用overlap方法将折线图叠加在柱状图上。 10. 使用render_notebook方法将组合图渲染在notebook中。 下面是一个简单的示例代码: ```python from pyecharts.charts import Bar, Line from pyecharts import options as opts from pyecharts.globals import ThemeType # 创建柱状图对象 bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK)) # 设置横轴数据 x_value = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] bar.add_xaxis(xaxis_data=x_value) # 添加柱状图的数据 bar.add_yaxis('Evaporation', [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]) bar.add_yaxis('Precipitation', [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]) # 创建折线图对象 line = Line() line.add_xaxis(xaxis_data=x_value) # 添加折线图的数据 line.add_yaxis('Temperature', [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]) # 叠加折线图在柱状图上 bar.overlap(line) # 在notebook中渲染组合图 bar.render_notebook() ``` 以上代码会绘制一个柱状折线组合图,横轴为月份,纵轴分别为蒸发量、降水量和温度。折线图的点会对准柱状图的中心。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Pyecharts 折线图与堆积柱状图结合的组合图绘画,折线图数据点在柱状图柱中心](https://blog.csdn.net/qq_48859800/article/details/128514272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [70.PyEcharts之组合图的使用](https://blog.csdn.net/m0_63953077/article/details/128882108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值