12/14作业

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

import pyecharts.options as opts
from pyecharts.charts import Bar,Line
x_years=["2014","2015","2016","2017","2018","2019","2020","2021"]
 
bar=(
    Bar()
    .add_xaxis(xaxis_data=x_years)       
   
    .add_yaxis(series_name="诊疗量(万人次)",
               y_axis=[87430,90912,96225,101885,107147,116390,105764,120215],
               
 
               label_opts=opts.LabelOpts(is_show=True),color="orange",z=2)    

     .extend_axis(
         
#        yaxis=opts.AxisOpts() :新增 Y 坐标轴配置项
        yaxis=opts.AxisOpts(
            name="同比增长速(%)",
            type_="value",
            min_=-20,
            max_=20,
            interval=10,        #interval:y轴数据之间的间隔
     
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title=" 2014-2021年中国中医类医疗卫生机构诊疗量",padding=[30,250]) 
        #padding:标题内边距,设置上下的内边距为 30,左右的内边距为 250
)
    
    #下列一句表示该数据项区域的样式图形的颜色透明度
    .set_series_opts(itemstyle_opts=opts.ItemStyleOpts(opacity=0.5))#opacity:图形透明度
)
line=(
       Line()
       .add_xaxis(xaxis_data=x_years)
       .add_yaxis(series_name="同比增长速(%)",
                  y_axis=[7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66], 
# 使用的 y 轴的 index
                  yaxis_index=1,# 第一条y轴索引为0,第二条y轴索引为1
                  symbol="triangle",          #symbol特效图形的标记
                  symbol_size=20,#图形大小
                  
#标记线为蓝,线宽5
                 linestyle_opts=opts.LineStyleOpts(color="blue", width=5),
 
#标记图形为红
                 itemstyle_opts=opts.ItemStyleOpts(color="red"),
                  
                  z=3)   #Z比上面的z值大,折线图覆盖上面的柱形图形
 
        .set_global_opts(
        title_opts=opts.TitleOpts(title=" 2014-2021年中国中医类医疗卫生机构诊疗量",padding=[30,250])
)
)
# bar.render_notebook()
bar.overlap(line).render_notebook()  #overlap:层叠多图

运行图如下

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

import pyecharts.options as opts
from pyecharts.charts import Pie
pie=(
   Pie()
    .add("",[('20岁以下',2.2),('20-30岁',27.9),('31-40岁',56.2),('41-50岁',10.9),('51岁以上',2.8)],center=["50%","50%"] ,radius=[100,160])
    .set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者画像数据",padding=[30,300]))
)
pie.render_notebook()

运行如下

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

from pyecharts import options as opts
from pyecharts.charts import Bar
 
 
c = (
    Bar()
    .add_xaxis(['2019年','2020年','2021年','2022年','2023年',])
    .add_yaxis("跨国企业占比(%)",[20.3, 22.0, 23.5, 22.5, 22.3], stack="stack1",bar_width=60)
    .add_yaxis("本土企业占比(%)", [79.7, 78.0, 76.5, 77.5, 77.7], stack="stack1")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="全国药店中药饮片供应商占比情况",padding=[30,300]),
                      #padding:标题内边距,上下内边距为 30,左右内边距为 250
 
        
                     xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),)  #rotate:标记的旋转角度
    
   
)
c.render_notebook()

运行如下

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


from pyecharts import options as opts
from pyecharts.charts import Radar
 
v1 = [[33,45,3,9,6,4]]
c = (
    Radar()
#     .set_colors(["#458598"])
    .add_schema(
        schema=[
            opts.RadarIndicatorItem(name="化学药", max_=50),
            opts.RadarIndicatorItem(name="中成药", max_=50),
            opts.RadarIndicatorItem(name="生物制品", max_=50),
            opts.RadarIndicatorItem(name="医疗器械", max_=50),
            opts.RadarIndicatorItem(name="中药饮片", max_=50),
            opts.RadarIndicatorItem(name="保健品", max_=50),
        ],
        shape="circle" , 
        #绘制类型为圆形,
        radius="70%",
         center=["50%", "60%"], #图圆心坐标,第一项数表示横坐标位置,第二项数表示纵坐标位置
      # background_color='red'
        
        )
    .add("销售额占比",v1,color='red',     
         
#          填充区域为红,浅度为0.1    opacity的最大值为1
         areastyle_opts=opts.AreaStyleOpts(opacity=0.1))
# 显示标签数据(True)  则不显示标签(False)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
    
    .set_global_opts(
        title_opts=opts.TitleOpts(title="全国药店药品销售额占比",padding=[30,350]),
        #padding:标题内边距,设置上下的内边距为 30,左右的内边距为 250
 
        
    )
 
)
c.render_notebook()

运行结果如下

需求五:将上述图1到图4,利用“并行多图”的方式排布,得到图5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值