Python + ECharts = pyecharts。
Apache ECharts 是一款百度开源的数据可视化第三方库,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
Python 是一门富有表达力的语言,很适合用于数据处理,当数据分析遇上数据可视化时,pyecharts 诞生了。
快速开始
以下是我推荐的写法,可以快速绘制一个图形,推荐使用链式调用:
import pyecharts as pe
(
# 调用图形,初始配置
pe.charts.Bar(dict(width="1220px", height="420px", theme='light'))
.add_xaxis([*df.name]) # 增加 x 轴
.add_yaxis('Q1', df.Q1.to_list()) # 增加 y 轴
.render_notebook() # 在 notebook 上展示
)
概述
pyecharts 的主要对象有:
pe.charts:绘图的类,是核心对象,可以用类似
pe.charts.Bar
类和方法生成各种图形;pe.options:图表的中各种配置,有针对全局及不同图形的配置方法,可用类似
pe.options.AxisOpts
类和方法进行配置。
还包括:
faker.py :一些供演示的简单假数据
globals.py:一些涉及全局配置的值
初始化配置
# pe.charts.Bar(dict(...))
width="1220px" # 宽度
height="420px" # 高度
theme='light' # 主题样式 pe.globals.ThemeType
全局配置
# .set_global_opts(dict(...))
绘制样式:
pe.charts.Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
# 取值
LIGHT = "light"
DARK = "dark"
WHITE = "white"
CHALK: str = "chalk"
ESSOS: str = "essos"
INFOGRAPHIC: str = "infographic"
MACARONS: str = "macarons"
PURPLE_PASSION: str = "purple-passion"
ROMA: str = "roma"
ROMANTIC: str = "romantic"
SHINE: str = "shine"
VINTAGE: str = "vintage"
WALDEN: str = "walden"
WESTEROS: str = "westeros"
WONDERLAND: str = "wonderland"
HALLOWEEN: str = "halloween"
常用图形
折线图
todo
柱状图
# .reversal_axis() 横向柱形图(方法)
todo
Jupyter Lab
在 Jupyter Lab 上使用时需要做如下配置:
import pyecharts as pe
# 其他:"jupyter_notebook", "nteract", "zeppelin"
pe.globals.CurrentConfig.NOTEBOOK_TYPE = 'jupyter_lab'
# 对应图形加载 JS 文件
pe.charts.Bar().load_javascript()
(
pe.charts.Bar(dict(width="1220px", height="420px"))
.add_xaxis([...])
.add_yaxis('...', [...])
.render_notebook() # 网页展示图表
)
数据的构造
由于 pyecharts 设计理念为通用库,因此没有引入 NumPy 和 Pandas 的数据结构,在绘图时,一般需要列表和字典格式的结构,可以通过以下形式进行转换:
series.to_list()
[*a]
[*series]
[*array]
在使用 Pandas&Numpy 时,请确保将数值类型转换为 python 原生的 int/float。比如整数类型请确保为 int,而不是 numpy.int32。
参数传递
pyecharts 对配置项基本上都采用 XXXOpts/XXXItems 以及 dict 两种数据形式,这两种是完全等价的。比如下面三者效果是一致的:
from pyecharts import options as opts
from pyecharts.charts import Bar
c = Bar(init_opts=opts.InitOpts(width="620px", height="420px"))
c = Bar(dict(width="620px", height="420px"))
c = Bar({"width": "620px", "height": "420px"})
Note: 不是每个配置项的名字都与 dict key 相等,比如 max, min, type 等,因为和 Python 原生关键字冲突了,所以使用 下划线作为后缀,具体应该参考每个配置项的 self.opts 属性。
支持的图形
pyecharts 支持以下图形,写法为:
import pyecharts as pe
# 调用图形的类用于绘制不同的图形
pe.charts.Bar()
关于不同图形的设置和数据结构可以参考官方网站的文档,有中文版本,非常详细。
frompyechartsimportoptionsasopts
frompyecharts.chartsimportBar,Page
frompyecharts.fakerimportCollector,Faker
frompyecharts.globalsimportThemeType
# 基础图形
Bar
BMap
Boxplot
Calendar
EffectScatter
Funnel
Gauge
Geo
Graph
HeatMap
Kline
Line
Liquid
Map
Parallel
PictorialBar
Pie
Polar
Radar
Sankey
Scatter
Sunburst
ThemeRiver
Tree
TreeMap
WordCloud
# 合成图
Grid
Page
Tab
Timeline
# 三维图表
Bar3D
Line3D
Map3D
MapGlobe
Scatter3D
Surface3D
# 别名
Candlestick=Kline
参考
https://pyecharts.org
https://gallery.pyecharts.org
https://github.com/pyecharts/pyecharts
https://echarts.apache.org/
https://echarts.apache.org/zh/option.html
https://echarts.apache.org/zh/api.html