目录
柱形折线融合图
import pyecharts.options as opts
from pyecharts.charts import Bar, Line
x_data = ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021"]
# 创建柱状图
bar = (
Bar()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="诊疗量(万人次)",
y_axis=[87.43, 90.91, 96.22, 101.89, 107.15, 116.39, 105.76, 120.22],
label_opts=opts.LabelOpts(is_show=True),
)
# 扩展额外的y轴来显示同比增速
.extend_axis(
yaxis=opts.AxisOpts(
name="同比增速(%)",
type_="value",
min_=-75,
max_=20,
interval=5,
axislabel_opts=opts.LabelOpts(formatter="{value} %"),
)
)
# 设置全局选项
.set_global_opts(
tooltip_opts=opts.TooltipOpts(
is_show=True, trigger="axis", axis_pointer_type="cross"
),
xaxis_opts=opts.AxisOpts(
type_="category",
axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
),
yaxis_opts=opts.AxisOpts(
name="诊疗量(万人次)",
type_="value",
min_=50,
max_=150,
interval=10,
axislabel_opts=opts.LabelOpts(formatter="{value} 万人次"),
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
)
# 创建折线图
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="同比增速(%)",
yaxis_index=1,
y_axis=[7.4, 4.0, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66],
label_opts=opts.LabelOpts(is_show=True),
)
)
# 将折线图与柱状图结合并渲染为HTML文件
bar.overlap(line).render("2014-2021年中国中医类医疗卫生机构诊疗量.html")
结果如下:
圆环图
# 导入pyecharts库中的options和Pie类
from pyecharts import options as opts
from pyecharts.charts import Pie
# 定义数据,每个年龄组别以及占比
age_data = [("20岁以下", 2.2), ("20-30岁", 27.9), ("31-40岁", 56.2), ("41-50岁", 10.9), ("51岁以上", 2.8)]
# 创建Pie对象,并通过add()向图表中添加数据
c = (
Pie() # 创建饼形图对象
.add( # 添加数据
"", # 图例名称为空
age_data, # 数据源
radius=["40%", "55%"], # 内径和外径的大小
label_opts=opts.LabelOpts( # 标签样式和位置
position="outside", # 标签放置在外部
formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c} {per|{d}%} ", # 富文本标签格式化字符串
background_color="#eee", # 标签背景色