pyecharts 是一个用于生成 Echarts 图表的类库。
echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。
使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。
Bar(柱状图/条形图)
Bar3D(3D 柱状图)
Boxplot(箱形图)
EffectScatter(带有涟漪特效动画的散点图)
Funnel(漏斗图)
Gauge(仪表盘)
Geo(地理坐标系)
Graph(关系图)
HeatMap(热力图)
Kline(K线图)
Line(折线/面积图)
Line3D(3D 折线图)
Liquid(水球图)
Map(地图)
Parallel(平行坐标系)
Pie(饼图)
Polar(极坐标系)
Radar(雷达图)
Sankey(桑基图)
Scatter(散点图)
Scatter3D(3D 散点图)
ThemeRiver(主题河流图)
WordCloud(词云图)
from pyecharts.charts import Bar
from pyecharts import options
# 1.准备数据
cate = ['湖北', '四川', '重庆', '河北', '云南']
data1 = [34500, 3000, 3218, 2890, 50023]
data2 = [1200, 100, 300, 130, 1004]
# 2. 创建图表对象
bar = Bar()
# 3. 关联数据
bar.add_xaxis(cate) # 确定x轴上要显示的内容
bar.add_yaxis('确诊人数', data1)
bar.add_yaxis('死亡人数', data2)
# 4. 设置图表
# 全局设置
bar.set_global_opts(
# 设置标题信息
title_opts=options.TitleOpts(title='全国疫情数据统计', subtitle='确诊人数和死亡人数'),
# 显示工具箱
toolbox_opts=options.ToolboxOpts())
# 系列设置
bar.set_series_opts(
# 设置是否显示数值
label_opts=options.LabelOpts(is_show=False),
# 添加标记点
markpoint_opts=options.MarkPointOpts(data=[
options.MarkPointItem(type_='min', name='最小值'),
options.MarkPointItem(type_='max', name='最大值')
]))
# 5. 数据渲染 - 生成图表
bar.render('files/柱状图.html')
from pyecharts.charts import Pie
from pyecharts import options
# 1. 准备数据
data = [('苹果', 153), ('三星', 56), ('华为', 200), ('Oppo', 89)]
# 2. 创建图标对象
pie = Pie()
# 3. 关联数据
pie.add(
# 设置系列名称
series_name='手机销量',
# 设置需要展示的数据
data_pair=data,
# 设置圆环空心部分和数据显示部分的比例
radius=['30%', '70%'],
# 设置饼是不规则的
rosetype='radius'
)
# 设置数据显示的格式
pie.set_series_opts(label_opts=options.LabelOpts(formatter='{b}:{d}%'))
# pie.set_series_opts(label_opts=options.LabelOpts(formatter='{b}的占比:百分之{d}'))
# 设置图表的标题
pie.set_global_opts(title_opts=options.TitleOpts(title='手机销量'))
# 5. 渲染数据
pie.render('files/饼状图.html')
from pyecharts.charts import Line
from pyecharts import options
# 1.准备数据
cate = ['湖北', '四川', '重庆', '河北', '云南']
data1 = [3400, 3000, 3218, 2890, 5023]
data2 = [600, 100, 300, 130, 504]
# 2.创建图表
line = Line()
# 3. 关联数据
line.add_xaxis(cate)
# line.add_yaxis('确诊人数', data1,
# markline_opts=options.MarkLineOpts(data=[
# options.MarkPointItem(type_='average')
# ]))
line.add_yaxis('确定人数', data1,
# 设置折线是否平滑
is_smooth=True)
line.add_yaxis('死亡人数', data2, markpoint_opts=options.MarkPointOpts(
data=[options.MarkPointItem(type_='min', name='最小值')]
))
line.set_series_opts(markline_opts=options.MarkLineOpts(
# 设置平均值的标记线
data=[options.MarkPointItem(type_='average', name='平均值'),
# 设置最大值的标记线
options.MarkPointItem(type_='max', name='最大值')]
))
line.set_global_opts(title_opts=options.TitleOpts(title='主标题', subtitle='副标题'))
# 5. 渲染数据
line.render('files/折线图.html')
from pyecharts.charts import Map
from pyecharts import options
# 1. 准备数据
data = [('湖北', 1500), ('四川', 340), ('西藏', 34), ('黑龙江', 123)]
# 2.创建地图对象
map1 = Map()
# 3. 关联数据
map1.add('疫情数据', data, 'china')
# 4. 设置
map1.set_global_opts(
# 设置颜色块标记范围
visualmap_opts=options.VisualMapOpts(max_=2000, is_piecewise=True),
# 隐藏顶部的数据导航显示
legend_opts=options.LegendOpts(is_show=False),
title_opts=options.TitleOpts(title='大标题', subtitle='副标题')
)
# 5. 渲染数据
map1.render('files/地图.html')
from pyecharts.charts import Grid
grid = Grid()
grid.add(bar, grid_opts=options.GridOpts(pos_bottom='60%'))
grid.add(line, grid_opts=options.GridOpts(pos_top='60%'))
grid.render('files/组合.html')
最近在b站上发现了一个很好的python基础教学视频感兴趣的可以看看:https://www.bilibili.com/video/BV1jE411x7ss