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="yellow",#图形的颜色
)
)
#层叠组件 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()
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
data = pd.DataFrame({
#准备数据
"区域": ["2019年", "2020年", "2021年", "2022年", "2023年"],#x轴
"总销量": [100, 100, 100, 100, 100],#y轴
"跨国企业占比(%)": [20.3, 22.0, 23.5, 22.5, 22.3],
"本土企业占比(%)": [79.7, 78.0, 76.5, 77.5, 77.7],
})
bar = (
Bar(init_opts=opts.InitOpts(width="800px", height="500px"))#指定画布大小
.add_xaxis(data["区域"].tolist())
.add_yaxis("总销量", data["总销量"].tolist()
)
)
stack_bar = (
Bar(init_opts=opts.InitOpts(width="830px", height="500px"))
.add_xaxis(data["区域"].tolist())
.add_yaxis("跨国企业占比(%)", data["跨国企业占比(%)"].tolist(), stack="stack1", category_gap="50%")
.add_yaxis("本土企业占比(%)", data["本土企业占比(%)"].tolist(), stack="stack1", category_gap="50%")
# 在系列设置中设置标签属性
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False)#隐藏数据
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="全国药店中药饮片供应商占比情况"),#设置标题
legend_opts=opts.LegendOpts())
.render("mutiple_pie3.html")
)
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='green',#设置图形颜色,数据点也会根据颜色变化
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上