pyecharts实现并行多图

表1. 2014-2021年中国中医类医疗卫生机构诊疗量

年份(年)

诊疗量(万人次)

同比增速(%)

2014

87430

7.40

2015

90912

4.00

2016

96225

5.83

2017

101885

5.81

2018

107147

5.16

2019

116390

8.63

2020

105764

-9.13

2021

120215

13.66

表2. 中药材消费者画像数据

年龄

占比(%)

20岁以下

2.2

20-30岁

27.9

31-40岁

56.2

41-50岁

10.9

51岁以上

2.8

表3. 全国药店中药饮片供应商占比情况

年份(年)

跨国企业占比(%)

本土企业占比(%)

2019

20.3

79.7

2020

22.0

78.0

2021

23.5

76.5

2022

22.5

77.5

2023

22.3

77.7

表4. 全国药店药品销售额占比

药品类型

占比(%)

化学药

33

中成药

45

生物制品

3

医疗器械

9

中药饮片

6

保健品

4

需求一: 请基于pyecharts,用柱形图和折线图在同一个坐标系展示表1数据,得到图1。

需求 请基于pyecharts,用环图展示表2数据,得到图2。

需求 请基于pyecharts,用堆积柱形图展示表3数据,得到图3。

需求 请基于pyecharts,用雷达图展示表4数据,得到图4。

需求 将上述图1到图4,利用“并行多图”的方式排布,得到图5。(参考示意图)

需求 将上述图1到图5,利用“轮播多图”的方式排布,得到图6。

需求一:

from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Pie,Radar
x_data = ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021"]
 
bar1 = (
    Bar()
    .add_xaxis(xaxis_data=x_data)# 导入系列数据
    .add_yaxis(
        series_name="诊疗量(万人次)",# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        y_axis=[87430,90912,96225,101885,107147,116390,105764,120215],# 系列数据
        label_opts=opts.LabelOpts(is_show=False), # 是否显示数据标签
    )
    .extend_axis(
        yaxis=opts.AxisOpts(      #新增 Y 坐标轴配置项
            name="同比增速(%)",      #新增 Y 坐标名字
            type_="value",        # 'value': 数值轴,适用于连续数据。
            min_=-20,             #坐标轴最小值
            max_=15,              #坐标轴最大值,#LabelOpts:标签配置项
        )
    )
    .set_global_opts(             #全局配置项可通过 set_global_opts 方法设置
        tooltip_opts=opts.TooltipOpts(    #TooltipOpts:提示框配置项
            is_show=True, trigger="axis", axis_pointer_type="cross"  #is_show是否显示,trigger坐标轴触发,指示器类型:十字准星
        ),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
        ),
        yaxis_opts=opts.AxisOpts(
            name="诊疗量(万人次)",
            type_="value",
            min_=0,
            max_=150000,
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
        title_opts=opts.TitleOpts(title='2014-2021年中国中医类医疗卫生机构诊疗量'),
        legend_opts=opts.LegendOpts(pos_left='45%' ),# 图例组件离容器左侧的距离45%。
    )
    .set_series_opts(    #系统配置项
        itemstyle_opts=opts.ItemStyleOpts(
            opacity=0.5))#柱状图透明度
)

需求二:

from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Scatter,Pie
data = [["20岁以下",2.2],["20-30岁",27.9],["31-40岁",56.2],["41-50岁",10.9],["51岁以上",2.8]]
c1 = (
    Pie()
    .add("", data ,
        radius=["25%", "50%"], # 饼的直径    
        )
     .set_colors(["green", "blue", "pink", "orange", "yellow"])
     .set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者画像数据"))
     .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    
)

需求三:

from pyecharts import options as opts
from pyecharts.charts import Bar
x_years =['2019年', '2020年','2021年', '2022年','2023年']    #导入数据
y1 = [20.3, 22.0, 23.5, 22.5, 22.3]                          
y2 = [79.7, 78.0, 76.5, 77.5, 77.7]                         
c2 = (       
    Bar()
    .add_xaxis(x_years)
    .add_yaxis("跨国企业占比(%)", y1, stack="stack1", color='orange',bar_width=80)      #纵坐标
    .add_yaxis("本土企业占比(%)", y2, stack="stack1" )      #纵坐标
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True ,            #是否显示数据标签
                                               position="right",         #设置柱形图数据右侧显示
                                               font_size=12,             #文字大小
                                               font_weight = "bold") )   #文字字体的粗细
    .set_global_opts(title_opts=opts.TitleOpts(title="全国药店中药饮片供应商占比情况"))    #设置全局配置项      
)

需求四:

#导入库
from pyecharts import options as opts
from pyecharts.charts import Radar
 
data = [[33, 45, 3, 9, 6, 4]]   #导入数据
c_schema = [
    {"name": "化学药", "max": 0, "min": 45},
    {"name": "中成药", "max": 0, "min": 45},
    {"name": "生物制品", "max": 0, "min": 45},
    {"name": "医疗器械", "max": 0, "min": 45},
    {"name": "中药饮片", "max": 0, "min": 45},
    {"name": "保健品", "max": 0, "min": 45},
]
# 绘制雷达图实例
radar = (
    Radar(init_opts=opts.InitOpts())
    .set_colors(["blue"]) #数据点颜色
    .add_schema(
        schema=c_schema,          # 雷达指示器配置项列表
        shape="circle",           #雷达图绘制类型
        center=["50%", "50%"],     #百分比
        radius="77%",              #半径
        angleaxis_opts=opts.AngleAxisOpts(        #极坐标系角度轴配置项
            min_=0,                #坐标轴刻度标签最小值
            max_=360,              #坐标轴刻度标签最大值
            interval=20,           #坐标轴分割间隔
            axistick_opts=opts.AxisTickOpts(is_show=False), # 轴刻度
            axislabel_opts=opts.LabelOpts(is_show=False),    #坐标轴线标签配置项
            axisline_opts=opts.AxisLineOpts(is_show=False),  # 坐标轴线风格配置项
            splitline_opts=opts.SplitLineOpts(is_show=False), #坐标轴在 grid 区域中的分隔区域
        ),
        radiusaxis_opts=opts.RadiusAxisOpts( # 极坐标系的径向轴
            min_=0, # 设置坐标轴刻度的最小值
            max_=45, # 设置坐标轴刻度的最大值
            interval=20, # 坐标轴间隔值
        ),
        polar_opts=opts.PolarOpts(),
        splitarea_opt=opts.SplitAreaOpts(is_show=False), # 分隔区域配置项
        splitline_opt=opts.SplitLineOpts(is_show=False), # 分割线配置项
    )
    .add(
        series_name="全国药店药品销售额占比", #标题
        data=data,
        areastyle_opts=opts.AreaStyleOpts(opacity=0.2), # 区域填充样式配置项,透明度
        linestyle_opts=opts.LineStyleOpts(width=2),    #线样式配置项,线宽
    )
    .set_global_opts(title_opts=opts.TitleOpts(title='全国药店药品销售额占比'))
)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值