用pyecharts绘制各类图形

第一步:导入需要的库

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

柱形图绘制代码:

from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
#导入库
bar = Bar(init_opts=opts.InitOpts(width='1200px',height='300px'))
# 创建bar对象,并制定画布大小 
x_data = ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021']
# 插入数据
# 柱形图设置
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis(
        series_name="诊疗量",
        y_axis=[87430,90912,96225,101885,107147,116390,105764,120215],

        # 这个参数是用来设置 y 轴的索引。
        yaxis_index=0,

        # 柱形图组织的所有图形的z值
        z=0,

        #这个参数用来设置柱形图的颜色。
        color="orange",

        bar_width=40,   
        # 设置柱形宽度
           
    )
    #Bar.extend_axis 是 pyecharts 绘图库中的一个方法,用于扩展坐标轴。
    .extend_axis(
        yaxis=opts.AxisOpts(
            # 设置y轴属性
            type_="value",  
            #表示y轴是一个数值轴,用于显示连续的数据。 
            name="同比增速(%)",    
            #给y轴设置名称
            name_location="center",  
            #轴名称位于中间
            name_gap=30,      
            #轴名称与轴线距离30px
            min_=-20,     
            #设置y轴的最大值20 最小值-20
            max_=20,
            axislabel_opts=opts.LabelOpts(font_size=15),    
            #y轴刻度标签字体大小为15
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="black")   
             #设置线样式
            ),
            
            splitline_opts=opts.SplitLineOpts(           
             #显示分割线
                is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)  
               #图形透明度。支持从0到1的数字,为0时不绘图。
            ),
        )
    )
    .set_global_opts(                              
      #用于设置图表的全局选项
        yaxis_opts=opts.AxisOpts(                  
         #设置y轴的各种属性
            name="诊疗量(万人次)",                
            #设置名称
            name_location="center",                 
            #设置名称位置
            name_gap=60,                           
            #设置轴名称与轴线之间的距离
            min_=0,                                 
            #设置y轴最大值和最小值
            max_=130000,            
            interval=50000,                         
            # 显示y轴刻度间隔,默认为1        
            axislabel_opts=opts.LabelOpts(font_size=14),         
            offset=0,                  
            #偏移量设置,在此影响y轴的位置    
            axisline_opts=opts.AxisLineOpts(                                    # 设置线样式
                linestyle_opts=opts.LineStyleOpts(color="blank")
            ),
            
        ),
        # 标题设置
        title_opts=opts.TitleOpts(title="2014-2021年中国中医类医疗卫生机构诊疗量",pos_left="center",pos_top="top"),
        # 图例设置
        legend_opts=opts.LegendOpts(pos_left='40%',pos_bottom='89%'),
        # 设置提示框和指示器
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
    )
)
# 折线图设置
line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis(
        series_name="同比增速(%)", 
        y_axis=[7.40,4.00,5.83,5.81,5.16,8.63,-9.13,13.66],
        # 设置标记的图形为三角形
        symbol='triangle',
        # 设置标记图形的大小
        symbol_size=15,
        #删了一个Y轴,Y轴索引由2改为1
        yaxis_index=1,    
        color="#aa00ff",  #设置紫色
        # 显示标签
        label_opts=opts.LabelOpts(is_show=False, font_size=10,font_weight='bold'),
        linestyle_opts=opts.LineStyleOpts(width=3)  # 使用LineStyleOpts来设置线的粗细  
 
    )
)
 
# 将折线图叠加在柱状图上
bar.overlap(line)
# 渲染图表
bar.render_notebook()

柱形图渲染:

环形图的代码示例:

# 导入库
from pyecharts import options as opts
from pyecharts.charts import Pie, Bar, Line
from pyecharts.faker import Faker
 
data = [['20岁以下', 2.2], ['20-30岁', 27.9], ['31-40岁', 56.2], ['41-50岁', 10.9], ['51岁以上', 2.8]]
 
 
pie = (
    Pie()
    .add("", data,
         radius=["25%", "50%"],  
      # 挖掉的直径,整张饼的直径 
        )
     # 设置填充的颜色 
    .set_colors(["blue", "orange", "green", "red", "pink"])   
     # 设置标题及位置
    .set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者图例", pos_left='40%'),  
                     legend_opts=opts.LegendOpts(is_show=False))  
    # 设置不显示图例  
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    
)
 
pie.render_notebook()

以下是环形图示例:

雷达图代码:

from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Radar
from pyecharts import options as opts
from pyecharts.charts import Radar
 
data = [{"value": [33,45,3,9,6,4] }]
c_schema = [
    #设置指示器名称、最大值和最小值
    {"name": "化学药", "max": 50, "min": 0},     
    {"name": "中成药", "max": 50, "min": 0},
    {"name": "生物制品", "max": 50, "min": 0},
    {"name": "医疗器械", "max": 50, "min": 0},
    {"name": "中药饮片", "max": 50, "min": 0},
    {"name": "保健品", "max": 50, "min": 0},
]
a = (
    Radar()
     #设置颜色
    .set_colors(["blue"])  
    .add_schema(
        schema=c_schema,
        # 雷达图绘制类型,可以选择polygon或者circle
        shape="circle",     
        center=["50%", "50%"],
        radius="80%",
        angleaxis_opts=opts.AngleAxisOpts(
            min_=0,
            max_=360,
            is_clockwise=False,
            interval=5,
            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),
        ),
        radiusaxis_opts=opts.RadiusAxisOpts(
            min_=-4,
            max_=4,
            interval=2,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
        ),
        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.1),
        linestyle_opts=opts.LineStyleOpts(width=1),
    )
    
)
a.render_notebook()

 以下是雷达图示例

堆积图代码示例:

# 导入所需的库
from pyecharts import options as opts
from pyecharts.charts import Bar
 
bar = (
    Bar()
    # 定义横轴数据
    .add_xaxis(['2019年', '2020年', '2021年', '2022年', '2023年']) 
    # 定义第一组纵轴数据(跨国企业占比),指定堆积方式为stack1 
    .add_yaxis("跨国企业占比(%)", [20.3, 22.0, 23.5, 22.5, 22.3],  stack="stack1")  
    .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="全国药店中药饮片供应商占比情况"),   
                     xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=55)),)  # 设置横轴标签的旋转角度
)
# 渲染到notebook中展示
bar.render_notebook()  

以下是堆积图示例:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值