echarts官网:https://www.echartsjs.com/index.html
pyecharts官网:https://pyecharts.org/#/zh-cn/intro
pyecharts众多图表示例代码:https://gallery.pyecharts.org/#/README
pyecharts github项目国内镜像: https://gitee.com/mirrors/pyecharts
中医药数据如下表所示
具体需求如下
让我们来了解一下什么是并行多图,以及关于并行多图的相关语法
并行多图是属于自定义图表中的一大类,自定义图表类主要有以下四种
- Grid 类:并行显示多张图
- Overlap 类:结合不同类型图表叠加画在同张图上
- Page 类:同一网页按顺序展示多图
- Timeline 类:提供时间线轮播多张图
这里我们重点说一下Grid类
定义:用户可以自定义结合 Line/Bar/Kline/Scatter/EffectScatter/Pie/HeatMap/Boxplot 图表,将不同类型图表画在多张图上。第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意。
Grid 类的使用:
- 引入
Grid
类,from pyecharts import Grid
- 实例化
Grid
类,grid = Grid()
,可指定page_title
,width
,height
,jhost
参数。- 使用
add()
向 grid 中添加图,至少需要设置一个grid_top
,grid_bottom
,grid_left
,grid_right
四个参数中的一个。grid_width
和grid_height
一般不用设置,默认即可。- 使用
render()
渲染生成 `.html 文件
注意: Overlap
类可放入 Grid
类中,不过有个前提,Overlap 不可为多 x 轴或者多 y 轴,否则会出现坐标轴索引混乱问题
1.导入相关模块
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
# 0.【设置中文字体】
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
需求1.用柱形图和折线图在同一个坐标系展示表1数据
#导入模块
get_ipython().run_line_magic('matplotlib', 'notebook')
import numpy as np
import matplotlib.pyplot as plt
# 0.【设置中文字体】
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
import pyecharts.options as opts
from pyecharts.charts import Bar, Line
#x轴数据
x_data = ["2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年"]
#标签名
legend_list = ["诊疗量(万人次)", "同比增速(%)"]
#"诊疗量(万人次)"的数据
value1 =[87430, 90912,96225,101885,107147,116390,105764,120215]
#"同比增速(%)的数据
value2 = [7.40,4.00,5.83,5.81,5.16,8.63,-9.31,13.66]
#链式调用
bar = (
Bar(init_opts=opts.InitOpts(width="1000px", height="500px")) #设置柱形图宽度与高度
.add_xaxis(xaxis_data=x_data) #添加x轴的数据
.add_yaxis(
series_name="诊疗量(万人次)", #图例名:诊疗量(万人次)
y_axis=value1, ##y轴柱形图数据
yaxis_index=1,