1、导入pycharts库
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
2、创建bar对象,并制定画布大小
bar = Bar(init_opts=opts.InitOpts(width='1200px', height='300px'))
3、插入数据
x_data = ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021']
4、设置柱形图
bar = (
Bar()
.add_xaxis(x_data)
.add_yaxis(
series_name="诊疗量",
y_axis=[87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215],
yaxis_index=0,
z=0,
color="orange",
bar_width=40,
)
.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"),
)
)
5、设置折线图
# 折线图设置
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来设置线的粗细
)
)
6、将柱形图与折线图组合
bar.overlap(line)
7、渲染图表
bar.render_notebook()
以下是渲染图: