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上
运行结果如下: