pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。
常用用法
- 常见的导入方式:
# 导入配置项
from pyecharts import options as opts
# 饼状图
from pyecharts.charts import Pie
# 柱状图、条形图
from pyecharts.charts import Bar
# 水球图
from pyecharts.charts import Liquid
# 时间线图
from pyecharts.charts import Timeline
# 3D图
from pyecharts.charts import Bar3D
# 动态地图
from pyecharts.charts import Geo
# Faker 数据集
from pyecharts.faker import Faker
# 生成图片
from pyecharts.render import make_snapshot
# 渲染图片,需要用到 snapshot_selenium 包
from snapshot_selenium import snapshot
# 内置主题类型
from pyecharts.globals import ThemeType
# 图标类型
from pyecharts.globals import ChartType
# 标记点类型
from pyecharts.globals import SymbolType
Faker 数据集的使用可参考 Python数据可视化 Pyecharts 配置 Faker 数据集 。
代码举例
from pyecharts import options as opts from pyecharts.charts import Liquid c = ( Liquid() .add("占比", [0.4, 0.6]) .set_global_opts(title_opts=opts.TitleOpts(title="水球图")) ) c.render_notebook()
from pyecharts.charts import Bar from pyecharts import options as opts # 内置主题类型可查看 pyecharts.globals.ThemeType from pyecharts.globals import ThemeType bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) .add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) .add_yaxis("商家B", [15, 6, 45, 20, 35, 66]) .set_global_opts(title_opts=opts.TitleOpts(title="条形图", subtitle="销量")) ) bar.render_notebook()
from pyecharts.charts import Pie from pyecharts.faker import Faker from pyecharts import options as opts c = ( Pie() .add( "", [list(z) for z in zip(Faker.choose(), Faker.values())], radius=["10%", "55%"], # 设置饼图环形区间上下限 rosetype="radius", # 设置半径分数据 ) .set_colors( ["blue", "green", "black", "red", "pink", "orange", "purple"] # 自定义设置数据颜色 ) .set_global_opts( title_opts=opts.TitleOpts(title="环形饼图"), legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"), ) .set_series_opts( label_opts=opts.LabelOpts(formatter="{b}: {c}") ) ) c.render_notebook()
import pyecharts.options as opts from pyecharts.charts import Line line = ( Line() .add_xaxis(["huawei", "vivo", "OPPO", "sansung", "iphone", "xiaomi", "iQOO", "HONOR"]) .add_yaxis("商家A", [147, 117, 134, 72, 58, 123, 100, 64]) .add_yaxis("商家B", [165, 113, 98, 80, 100, 68, 124, 127]) .set_global_opts(title_opts=opts.TitleOpts(title="折线图")) ) line.render_notebook()
分类
诸如以上的图,pyecharts的基本图表有:
图表 | 说明 |
---|---|
基本 | |
Calendar | 日历图 |
Funnel | 漏斗图 |
Gauge | 仪表盘 |
Graph | 关系图 |
Liquid | 水球图 |
Parallel | 平行坐标系 |
Pie | 饼图 |
Polar | 极坐标系 |
Radar | 雷达图 |
Sankey | 桑基图 |
Sunburst | 旭日图 |
ThemeRiver | 主题河流图 |
WordCloud | 词云图 |
直角坐标系图表 | |
Bar | 柱状图/条形图 |
Boxplot | 箱形图 |
EffectScatter | 涟漪特效散点图 |
HeatMap | 热力图 |
Kline/Candlestick | K线图 |
Line | 折线/面积图 |
PictorialBar | 象形柱状图 |
Scatter | 散点图 |
Overlap | 层叠多图 |
树型图表 | |
Tree | 树图 |
TreeMap | 矩形树图 |
地理图表 | |
Geo | 地理坐标系 |
Map | 地图 |
BMap | 百度地图 |
组合图表 | |
Grid | 并行多图 |
Page | 顺序多图 |
Tab | 选项卡多图 |
Timeline | 时间线轮播多图 |
其他详细用法,可参考 官方文档 。