Code前端首页关于Code前端联系我们

pyecharts制作漂亮的图表,python数据可视化更高级

terry 2年前 (2023-09-24) 阅读数 56 #后端开发

pyecharts已经更新到1.x版本,1.x版本在组合语法上与0.5.x版本有很大不同。 1.x版本的语法更高级,与Echarts接近,但最容易理解的是0.5.x版本,所以本文基于pyecharts 0.5.11版本。大部分示例取自官方文档并添加了注释。我们建议打开 jupyter 笔记本并边打字边学习。

可以使用pip install pyecharts==0.5.11来安装。

在详细讲解如何绘制各个图表之前,我先说一下绘制饼图的基本(常规)步骤⬇️pyecharts制作精美图表,python数据可视化更高级

柱形图/条形图

柱形图/条形图,通过高度/条形图。表格的列宽度表示数据的大小。

看代码就行了,所有的东西都会在代码中注释

is_stack实现数据栈

from pyecharts import Bar #导入bar模块

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] #设置x轴数据
v1 = [5, 20, 36, 10, 75, 90] #第一组数据
v2 = [10, 25, 8, 60, 20, 80] #第二组数据
bar = Bar("柱状图数据堆叠示例") #实例一个柱状图
bar.add("商家A", attr, v1, is_stack=True) #用add函数往图里添加数据并设置堆叠
bar.add("商家B", attr, v2, is_stack=True)
bar.render() #展示数据

复制pyecharts制作精美图表,python数据可视化更高级

使用标记点和标记线♶

from pyecharts import Bar

bar = Bar("x 轴和 y 轴交换")
bar.add("商家A", attr, v1)
bar.add("商家B", attr, v2, is_convert=True) #设置交换XY轴
bar.render()

复制pyecharts制作精美图表,python数据可视化更高级

数据缩放效果, ‘滑块’类型

import random

attr = ["{}天".format(i) for i in range(30)]
v1 = [random.randint(1, 30) for _ in range(30)] #创建数据
bar = Bar("Bar - datazoom - slider 示例")
bar.add("", attr, v1, is_label_show=True, is_datazoom_show=True) #设置datazoom
bar.render()

复制pyecharts制作精美图表,python数据可视化更高级

缩放效果很多数据,效果支持X轴和Y轴

days = ["{}天".format(i) for i in range(30)]
days_v1 = [random.randint(1, 30) for _ in range(30)]
bar = Bar("Bar - datazoom - xaxis/yaxis 示例")
bar.add(
    "",
    days,
    days_v1,
    # 默认为 X 轴,横向
    is_datazoom_show=True,
    datazoom_type="slider",
    datazoom_range=[10, 25],
    # 新增额外的 dataZoom 控制条,纵向
    is_datazoom_extra_show=True,
    datazoom_extra_type="slider",
    datazoom_extra_range=[10, 25],
    is_toolbox_show=False,
)
bar.render()

复制3grid 3d_shadin g可以使列更加真实

bar3d = Bar3D("3D 柱状图示例", width=1200, height=600)
bar3d.add(
    "",
    x_axis,
    y_axis,
    [[d[1], d[0], d[2]] for d in data],
    is_visualmap=True,
    visual_range=[0, 20],
    visual_range_color=range_color,
    grid3d_width=200,
    grid3d_depth=80,
    grid3d_shading="lambert",
)
bar3d.render()

复印pyecharts制作精美图表,python数据可视化更高级

漏斗图

显示在内部的标签

from pyecharts import Funnel #导入漏斗图

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
value = [20, 40, 60, 80, 100, 120]
funnel = Funnel("漏斗图示例")
funnel.add(
    "商品",
    attr,
    value,
    is_label_show=True, #显示标签
    label_pos="inside", #标签位置
    label_text_color="#fff", #颜色
)
funnel.render()

复制 pyecharts制作精美图表,python数据可视化更高级

显示在外部的标签 仪表板

from pyecharts import Gauge #和之前一样 ,导入相关绘图包

gauge = Gauge("仪表盘示例") #标题
gauge.add("业务指标", "完成率", 66.66) #数据
gauge.render()

复制pyecharts制作精美图表,python数据可视化更高级

折线图

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"])
line.render()

复制 pyecharts制作精美图表,python数据可视化更高级

配置其他标记点

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"])
line.render()

复制 pyecharts制作精美图表,python数据可视化更高级

使用area_opacity绘制图形区域

line = Line("折线图-面积图示例")
line.add(
    "商家A",
    attr,
    v1,
    line_opacity=0.2,
    area_opacity=0.4,
    symbol=None,
)
line.add(
    "商家B",
    attr,
    v2,
    is_fill=True,
    area_color="#000",
    area_opacity=0.3, #设置面积
    is_smooth=True,
)
line.render()

复制图表弹簧线pyecharts制作精美图表,python数据可视化更高级

复制pyecharts制作精美图表,python数据可视化更高级

饼图

饼图部分主要展示各类数据占总数的比例。每个弧度代表数据量的比例。

饼图示例

from pyecharts import Pie

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("饼图示例")
pie.add("", attr, v1, is_label_show=True) #显示标签
pie.render()

复制 pyecharts制作精美图表,python数据可视化更高级

圆形集

from pyecharts import Pie

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("饼图-圆环图示例", title_pos='center') ¥创建饼图
pie.add(
    "",
    attr,
    v1,
    radius=[40, 75], #设置两个环大小
    label_text_color=None,
    is_label_show=True,
    legend_orient="vertical",#垂直显示图例
    legend_pos="left",#图例放在左边
)
pie.render()

复制 pyecharts制作精美图表,python数据可视化更高级

饼图 - 玫瑰图 ❀♸ 复制 pyecharts制作精美图表,python数据可视化更高级

国家地图(与 VisualMap 集成)
from pyecharts import Map

value = [155, 10, 66, 78, 33, 80, 190, 53, 49.6]
attr = [
    "福建", "山东", "北京", "上海", "甘肃", "新疆", "河南", "广西", "西藏"
    ]
map = Map("Map 结合 VisualMap 示例", width=1200, height=600)
map.add(
    "",
    attr,
    value,
    maptype="china", #设置中国
    is_visualmap=True,
    visual_text_color="#000",
)
map.render()

复制pyecharts制作精美图表,python数据可视化更高级

省份地图

from pyecharts import Map

value = [20, 190, 253, 77, 65]
attr = ['汕头市', '汕尾市', '揭阳市', '阳江市', '肇庆市']
map = Map("广东地图示例", width=1200, height=600)
map.add(
    "", attr, value, maptype="广东", is_visualmap=True, visual_text_color="#000"
) #设置广东省
map.render()

复制pyecharts制作精美图表,python数据可视化更高级

世界地图

value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]
map = Map("世界地图示例", width=1200, height=600)
map.add(
    "",
    attr,
    value,
    maptype="world", #设置世界地图
    is_visualmap=True,
    visual_text_color="#000",
)
map.render()

复制pyecharts制作精美图表,python数据可视化更高级

词云图

from pyecharts import WordCloud

name = [
    'Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications',
    'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp',
    'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham',
    'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break']
value = [
    10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112,
    965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265]
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 100]) #设置大小
wordcloud.render()

复制上面会得出可视化中的结论。方法本质上是相同的:创建所需的实例,然后添加各种数据和配置。最后我们看一下使用pyecharts绘制图表的大致步骤:pyecharts制作精美图表,python数据可视化更高级

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门