数据可视化之pyechats

本文介绍如何使用PyEcharts库绘制多种类型的图表,包括柱状图、散点图、饼图等,并提供详细的代码示例及配置选项说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值