柱(线)图:
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
# 创建bar对象,并制定画布大小
bar = Bar(init_opts=opts.InitOpts(width='1200px',height='300px'))
# 插入数据
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 轴的索引。在 pyecharts 中,可以通过设置这个参数来改变 y 轴的位置。默认情况下,y 轴的索引是 0,也就是最上面。
yaxis_index=0,
# 柱形图组织的所有图形的z值,控制图形的前后顺序,默认值为2,z值小的图形会被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 Bar, Grid, Line,Pie
from pyecharts.faker import Faker
x_data1=[['20岁以下',2.2],['20-30岁',27.9],['31-40岁',56.2],['20岁以下',2.2],['41-50岁',10.9],['51岁以上',2.8]]
c = (
Pie()
.add("",x_data1, radius=["40%", "75%"],) #设置内圆与外圆半径
.set_global_opts(title_opts=opts.TitleOpts(title="中药材消费者画像数据")) #全局配置
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.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,
shape="circle", # 雷达图绘制类型,可选polygon(多边形雷达图)或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
from pyecharts.faker import Faker
x_data2=['2019','2020','2021','2022','2023']
c = (
Bar()
.add_xaxis(x_data2)
.add_yaxis("跨国企业占比(%)",y_axis=[20.3,22.0,23.5,22.5,22.3] ,stack=1,color='blue',bar_width=40)
.add_yaxis("本土企业占比(%)",y_axis=[79.7,78.0,76.5,77.5,77.7] ,stack=1,color='orange',bar_width=40)
.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=45)))#设置x轴标签旋转45度
)
c.render_notebook()
