安装:
pip install pyechats
或者
pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ notebook
使用:
from pyecharts import Bar
# 创建图表
bar = Bar('标题','副标题')
# 添加数据
bar.add('阿玛尼',['褂子','短裤','长裤','线裤','运动裤'],[5,20,12,2,30])
bar.add('优衣库',['褂子','短裤','长裤','线裤','运动裤'],[18,12,25,36,14])
# 打印输出图表的所有配置项
bar.show_config()
# 保存
bar.render('qq.html')
-
add()
主要方法,用于添加图表的数据和设置各种配置项 -
show_config()
打印输出图表的所有配置项 -
render()
默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。
柱状图
from pyecharts import Bar
bar = Bar("标记线和标记点示例")
attr = ['褂子','短裤','长裤','线裤','运动裤']
v1 = [5,20,13,2,30]
v2 = [18,12,25,36,14]
bar.add("商家A", attr, v1, mark_point=["average"])
bar.add("商家B", attr, v2, mark_line=["min", "max"],is_more_utils=True)
bar.render()
mark_point=["average"] 是将平均值标记出来
mark_line=["min", "max"] 是将最大值和最小值标记出来
is_more_utils=True 可以选择数据的显示方式,比如下面的折线图
条形图
from pyecharts import Bar
bar = Bar("标记线和标记点示例")
attr = ['褂子','短裤','长裤','线裤','运动裤']
v1 = [5,20,13,2,30]
v2 = [18,12,25,36,14]
bar.add("商家A", attr, v1)
bar.add("商家B", attr, v2,is_convert=True) # x,y调换
bar.render()
is_convert=True 代表的是x轴和y轴反转
展示
数据堆叠
from pyecharts import Bar
attr = ['褂子','短裤','长裤','线裤','运动裤']
v1 = [5,20,13,2,30]
v2 = [18,12,25,36,14]
bar = Bar("柱状图数据堆叠示例")
bar.add("商家A", attr, v1, is_stack=True)
bar.add("商家B", attr, v2, is_stack=True)
bar.render()
散点图
from pyecharts import Scatter
v1 =[10, 20, 30, 40, 50, 60]
v2 =[10, 20, 30, 40, 50, 60]
scatter =Scatter("散点图示例")
scatter.add("A", v1, v2)
scatter.add("B", v1[::-1], v2)
scatter.show_config()
scatter.render()
动态散点图(带有涟漪特效动画的散点图)
from pyecharts import EffectScatter
v1 = [10,20,30,40,50,60]
v2 = [25,20,15,11,13,42]
es = EffectScatter('动态散点图')
es.add('EffectScatter',v1,v2)
es.render()
展示
动态散点各种图形图
from pyecharts import EffectScatter
# 动态散点图
es = EffectScatter('动态散点图')
es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")
es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect")
es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect")
es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond")
es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow")
es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3,symbol="triangle")
es.render()
symbol_size 图形大小
effect_scale 图形缩放
effect_period 图形速度
symbol 图形类型
展示
漏斗图
from pyecharts import Funnel
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
value = [20, 40, 60, 80, 100, 120]
funnel = Funnel("漏斗图示例")
funnel.add("商品", attr, value, is_label_show=False, label_pos="inside", label_text_color="#fff")
funnel.render()
is_label_show 是否移动鼠标显示名称
label_text_color 名称颜色
label_pos 是否展示名称
仪表盘
from pyecharts import Gauge
gauge = Gauge('仪表盘')
gauge.add('业务指标','完成率',66.66)
gauge.show_config()
gauge.render()
折线图
from pyecharts import Line
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]
line =Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"],is_more_utils=True)
line.show_config()
line.render()
is_label_show 展示数据量
is_step阶梯展示
from pyecharts import Line
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[5, 20, 36, 10, 10, 100]
line =Line("折线图-阶梯图示例")
line.add("商家A", attr, v1, is_step=True, is_label_show=True)
line.show_config()
line.render()
折线面积图
from pyecharts import Line
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]
line = Line('折线图-面积图示示例')
line.add('one',attr,v1,is_fill=True,line_opacity=0.2,area_opacity=0.4,symbol=None)
line.add("two", attr, v2, is_fill=True, area_color='#000', area_opacity=0.3, is_smooth=True)
line.render()
水球图
from pyecharts import Liquid
liquid =Liquid("水球图示例")
liquid.add("Liquid", [0.33])
liquid.show_config()
liquid.render()
Parallel(平行坐标系)
from pyecharts import Parallel
c_schema =[ {"dim": 0, "name": "data"}, {"dim": 1, "name": "AQI"}, {"dim": 2, "name": "PM2.5"}, {"dim": 3, "name": "PM10"}, {"dim": 4, "name": "CO"}, {"dim": 5, "name": "NO2"}, {"dim": 6, "name": "CO2"}, {"dim": 7, "name": "等级", "type": "category", "data": ['优', '良', '轻度污染', '中度污染', '重度污染', '严重污染']}]
data =[ [1, 91, 45, 125, 0.82, 34, 23, "良"], [2, 65, 27, 78, 0.86, 45, 29, "良"], [3, 83, 60, 84, 1.09, 73, 27, "良"],
[4, 109, 81, 121, 1.28, 68, 51, "轻度污染"], [5, 106, 77, 114, 1.07, 55, 51, "轻度污染"],
[6, 109, 81, 121, 1.28, 68, 51, "轻度污染"], [7, 106, 77, 114, 1.07, 55, 51, "轻度污染"],
[8, 89, 65, 78, 0.86, 51, 26, "良"], [9, 53, 33, 47, 0.64, 50, 17, "良"], [10, 80, 55, 80, 1.01, 75, 24, "良"],
[11, 117, 81, 124, 1.03, 45, 24, "轻度污染"], [12, 99, 71, 142, 1.1, 62, 42, "良"], [13, 95, 69, 130, 1.28, 74, 50, "良"],
[14, 116, 87, 131, 1.47, 84, 40, "轻度污染"]]
parallel =Parallel("平行坐标系-用户自定义指示器")
parallel.config(c_schema=c_schema)
parallel.add("parallel", data)
parallel.show_config()
parallel.render()
3D散点图
import random
from pyecharts import Scatter3D
# 随机坐标,80个
data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf',
'#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
scatter3D = Scatter3D("3D 散点图示例", width=1200, height=600)
scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color)
scatter3D.render()
饼状图示例
from pyecharts import Pie
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[11, 12, 13, 10, 10, 10]
pie =Pie("饼图示例")
pie.add("", attr, v1, is_label_show=True)
pie.show_config()
pie.render()
除此之外还有更多
步骤可以说只有三步:
初始化
add
render