使用pyecharts绘制柱形折线融合图,圆环图,堆积图和雷达图,并自定义布局

import pyecharts.options as opts   
from pyecharts.charts import Bar, Line
 
#柱形图
bar = (
    Bar(init_opts=opts.InitOpts(width='950px', height='600px'))   #设置柱形图宽度与高度
    .add_xaxis(['2014年','2015年','2016年','2017年','2018年','2019年','2020年','2021年'])                                
    .add_yaxis( '诊疗量(万人次)', [87430, 90912,96225,101885,107147,116390,105764,120215],
               yaxis_index=1,
               label_opts=opts.LabelOpts(is_show=False),
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            name='诊疗量(万人次)', #y轴名称
            type_='value',
            min_=0,#y轴最小值:0
            max_=150000,#y轴最大值:150000
            position='left'#位于y轴左侧
        )
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            name='同比增速(%)',#y轴名称
            type_='value',
            min_=-20,#y轴最小值
            max_=20,#y轴最大值
            position='right',#位于y轴右侧
        )
    )
    #设置全局配置项
    .set_global_opts(title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量'),
        legend_opts=opts.LegendOpts(pos_left='40%' ),#图例距离左边边距:40%
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),  #提示框
        toolbox_opts=opts.ToolboxOpts(is_show=False)  # 工具箱
    )
    #图元样式配置项
    .set_series_opts(itemstyle_opts=opts.ItemStyleOpts(               
                     opacity=0.3),#设置柱形图透明度
                     color="pink",#图形的颜色
                     )
    
)
 
# 折线图
line = (
    Line()
    .add_xaxis(['2014年','2015年','2016年','2017年','2018年','2019年','2020年','2021年'])
    .add_yaxis('同比增速(%)',[7.40,4.00,5.83,5.81,5.16,8.63,-9.31,13.66],#y轴折线图数据
               yaxis_index=2,#表示y轴的索引,用于拥有多个y轴的单图表中。
               color="green",#图形的颜色
    )
 
)
 
#层叠组件 Overlap
bar.overlap(line).render_notebook()#渲染到notebook中

运行结果如下:圆环图

#1、导入模块
import pyecharts.options as opts
from pyecharts.charts import Pie
 
#2、创建Pie类对象
pie= (
    Pie()
    .add("", [('20岁以下',2.2), ('20-30岁',27.9), ('31-40岁',56.2), ('41-50岁',10.9), ('51岁以上',2.8)], radius=[85, 160])   #添加数据
    .set_global_opts(
        title_opts=opts.TitleOpts(title="中药材消费者画像", pos_left="center")    #设置主标题并居中
        legend_opts=opts.LegendOpts(is_show=False)  #隐藏图例配置项
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) 
    #不同图表类型下的 {a},{b},{c},{d} 含义不一样,在这里饼图分别表示的是 {b}(数据项名称),{c}(数值)
)
 
#3、渲染图表
pie.render_notebook()

运行结果如下:

堆积图

#1、导入模块
from pyecharts import options as opts
from pyecharts.charts import Bar
 
#添加数据
list1 = [20.3, 22.0, 23.5, 22.5, 22.3]
list2 = [79.7, 78.0, 76.5, 77.5, 77.7]
 
#2、创建Bar类对象
bar1 = (
    Bar()
    .add_xaxis(['2019年','2020年','2021年','2022年','2023年'])   #设置横坐标刻度标签文字
    .add_yaxis("跨国企业占比", list1, stack="stack1")   #若两个都为stack相同,则默认堆叠
    .add_yaxis("本土企业占比", list2, stack="stack1")   #若两个都为stack不同,则默认并行
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  #隐藏标签配置项
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)),   将横坐标刻度标签文字旋转30°
        title_opts=opts.TitleOpts(title="全国药店中药饮品供应商占比", pos_left="center"),  #设置主标题并居中
        legend_opts=opts.LegendOpts(is_show=False)  #隐藏图例配置项
    )
)
 
#3、渲染图表
bar1.render_notebook()

运行结果如下:

雷达图

from pyecharts import options as opts
from pyecharts.charts import Radar
 
v1 = [[45 ,33, 9, 6, 4, 3]]#导入数据(单个数据项的数值。)
c = (
    Radar()
    .add_schema(
        schema=[
            opts.RadarIndicatorItem(name="中成药", max_=45),#设置数据的标题以及图形最大值
            opts.RadarIndicatorItem(name="化学药", max_=45),
            opts.RadarIndicatorItem(name="中药饮片", max_=45),
            opts.RadarIndicatorItem(name="医疗机械", max_=45),
            opts.RadarIndicatorItem(name="保健品", max_=45),
            opts.RadarIndicatorItem(name="生物制品", max_=45),
        ]
    )
    .add("全国药店药品销售额占比", v1)#输入题目以及数据
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True),
                    color='blue',#设置图形颜色,数据点也会根据颜色变化
                     areastyle_opts=opts.AreaStyleOpts(opacity=0.3),#设置局部图形透明度
#                     area_color=rgb(128, 128, 128)
                    )
    .set_global_opts(
        legend_opts=opts.LegendOpts(selected_mode="single"),
        title_opts=opts.TitleOpts(title="全国药店药品销售额占比"),#设置左上角标题
    
    )
#     .render("radar_selected_mode.html")
)
c.render_notebook()#渲染到notebook上

运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值