pyecharts概述
自2013年6月百度EFE(Excellent FrontEnd)数据可视化团队研发的ECharts 1.0发布到GitHub网站以来,ECharts一直备受业界权威的关注并获得广泛好评,成为目前成熟且流行的数据可视化图表工具,被应用到诸多数据可视化的开发领域。Python作为数据分析领域最受欢迎的语言,也加入ECharts的使用行列,并研发出方便Python开发者使用的数据可视化工具,由此便诞生了pyecharts库。
pyecharts是一个针对Python用户开发的、用于生成ECharts图表的库,与matplotlib相比,pyecharts具有以下优势:
(1)简洁的API使开发者使用起来非常便捷,且支持链式调用。
(2)程序可在主流的Jupyter Notebook或JupyterLab工具上运行。
(3)程序可以轻松地集成至Flask、Sanic、Django等主流的Web框架中。
(4)灵活的配置项可以轻松搭配出精美的图表。
(5)详细的文档和示例可以帮助开发者快速地上手。
(6)400多个地图文件、原生百度地图为地理数据可视化提供强有力的支撑。
实操
一、导入pyecharts模块
import pyecharts.options as opts
from pyecharts.charts import Bar, Line
# Bar, Line表示引用柱形图和折线图。
二、准备数据
x_data = ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021']
三、创建Bar类对象
bar = (
Bar()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="诊疗量", # 此处为设置图例配置项的名称
y_axis=[87430, 90912, 96225, 101885, 107147, 116390, 105764, 120215],
label_opts=opts.LabelOpts(is_show=False), # 此处将标签配置项隐藏
z=0 # 因为折线图会被柱状图遮挡,所以此处把柱状图置底
)
.extend_axis(
yaxis=opts.AxisOpts(
name="同比增速(%)",
type_="value",
min_=-20, # 刻度标签的最大值
max_=20, # 刻度标签的最小值
interval=10, # 步长
axislabel_opts=opts.LabelOpts(formatter="{value} %"), # 设置刻度标签的单位
)
)
.set_global_opts(
tooltip_opts=opts.TooltipOpts(
is_show=True, trigger="axis", axis_pointer_type="cross"
), # 设置提示框配置项,触发类型为坐标轴类型,指示器类型为"cross"
xaxis_opts=opts.AxisOpts(
type_="category",
axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
), # 设置x轴配置项为类目轴,适用于离散的类目数据
yaxis_opts=opts.AxisOpts(
name="诊疗量(万人次)",
type_="value",
min_=0, # 刻度标签的最大值
max_=150000, # 刻度标签的最小值
interval=50000, # 步长
axislabel_opts=opts.LabelOpts(formatter="{value} 万人"), # 设置刻度标签的单位
axistick_opts=opts.AxisTickOpts(is_show=True), # 显示坐标轴刻度
splitline_opts=opts.SplitLineOpts(is_show=True), # 显示分割线
),
title_opts=opts.TitleOpts(
is_show=True, title="2014-2021年中国中医类医疗卫生机构诊疗量", pos_left="center"
), # 设置标题并将其居中
legend_opts=opts.LegendOpts(
pos_right="right",
pos_bottom="bottom"
), # 设置图例配置项,并将其放在右下角
)
)
# .add_xaxis()和.add_yaxis():为柱形图添加x轴和y轴的数据
# .extend_axis:拓展x/y轴
# .set_global_opts:设置全局配置项(全局配置项是一些针对图表通用属性的配置项,包括初始化属性、标题组件、图例组件、工具箱组件、视觉映射组件、提示框组件、数据区域缩放组件,其中每个配置项都对应一个类。pyecharts的全局配置项如下表所示)
四、创建Line类对象
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="同比增速",
yaxis_index=1,
y_axis=[7.40, 4.00, 5.83, 5.81, 5.16, 8.63, -9.13, 13.66],
label_opts=opts.LabelOpts(is_show=False),
symbol="triangle",
symbol_size=20,
)
.set_series_opts(
linestyle_opts=opts.LineStyleOpts(width= 4)
) # 设置线条宽度为4
)
# .set_series_opts:设置系列配置项(系列配置项是一些针对图表特定元素属性的配置项,包括图元样式、文本样式、标签、线条样式、标记样式、填充样式等,其中每个配置项都对应一个类。pyecharts的系列配置项如下表所示)
五、将图表渲染到HTML文件
bar.overlap(line).render("mixed_bar_and_line.html")
# 除了使用render()方法渲染图表,还可以使用render_notebook()方法将图表渲染到Jupyter Notebook工具中。