当前位置: 首页 > news >正文

pyecharts可视化图表-pie:从入门到精通

引言:为什么饼图是数据可视化的必备技能

饼图是数据可视化领域中最直观、最常用的图表类型之一,特别适合展示不同类别在总体中所占的比例关系。无论是商业报告中的市场份额分析、学术研究中的数据分布展示,还是日常工作中的资源分配可视化,饼图都能以简洁明了的方式传达关键信息。pyecahts源码
在这里插入图片描述

通过将一个圆形分割成多个扇形区域,饼图让读者可以在一瞥之间理解各类别之间的比例关系。pyecharts库提供了强大而灵活的饼图绘制功能,不仅支持基本的饼图创建,还提供了丰富的定制选项,让我们可以轻松创建各种精美的、专业级别的饼图。

在本系列博客中,我们将从基础的饼图绘制开始,逐步介绍各种进阶功能,包括数据处理、样式定制、交互效果等。无论你是刚入门的数据分析师,还是希望提升可视化技能的开发者,本系列内容都能帮助你从入门到精通pyecharts饼图的使用。

目录

    • 引言:为什么饼图是数据可视化的必备技能
    • 示例一:从零开始创建你的第一个饼图
      • 代码解析
      • 运行效果
    • 示例二:自定义颜色,让饼图更具吸引力
      • 代码解析
      • 运行效果
    • 示例三:玫瑰图进阶,展示数据的相对差异
      • 代码解析
      • 运行效果
    • 示例四:环形饼图与图例优化
      • 代码解析
      • 运行效果
    • 示例五:灵活调整饼图位置,打造专业布局
      • 代码解析
      • 运行效果
    • 总结与后续内容预告

示例一:从零开始创建你的第一个饼图

下面是我们的第一个饼图示例代码:

from pyecharts import options as opts  # 导入配置模块
from pyecharts.charts import Pie       # 导入饼图模块
from pyecharts.faker import Faker      # 导入模拟数据生成器c = (Pie()  # 创建饼图对象# 添加数据,使用Faker生成模拟数据.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])# 设置全局配置,添加标题.set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))# 设置系列配置,定制标签格式.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))# 注释掉的代码用于输出为HTML文件#.render("pie_base.html")
)
c.render_notebook()  # 在Notebook中渲染图表

代码解析

  1. 导入必要的模块

    • options 模块用于配置图表的各种属性
    • Pie 类用于创建饼图
    • Faker 类用于生成模拟数据,方便我们快速测试
  2. 创建饼图对象Pie() 构造函数创建一个新的饼图实例

  3. 添加数据

    • .add() 方法用于向饼图添加数据
    • 第一个参数为空字符串,表示不设置系列名称
    • 第二个参数是数据列表,使用 zip(Faker.choose(), Faker.values()) 生成,其中 Faker.choose() 生成类别名称,Faker.values() 生成对应的值
    • [list(z) for z in ...] 将每个元组转换为列表,符合pyecharts的数据格式要求
  4. 设置全局配置

    • .set_global_opts() 方法用于设置图表的全局属性
    • title_opts=opts.TitleOpts(title="Pie-基本示例") 设置图表标题为"Pie-基本示例"
  5. 设置系列配置

    • .set_series_opts() 方法用于设置系列的属性
    • label_opts=opts.LabelOpts(formatter="{b}: {c}") 设置标签格式,其中 {b} 表示类别名称,{c} 表示对应的值
  6. 渲染图表

    • c.render_notebook() 在Jupyter Notebook中渲染图表
    • 如果要输出为HTML文件,可以使用 c.render("pie_base.html")

运行效果

运行代码后,Notebook中会呈现一个简洁美观的饼图。图表标题"Pie-基本示例"清晰可见,每个扇形区域都标注了对应的类别名称和具体数值。通过这个简单的饼图,我们可以直观地比较不同类别的数据大小和比例关系。
在这里插入图片描述

实用技巧:如果需要将图表保存为图片或HTML文件,可以使用c.render("pie_base.html")c.render("pie_base.png")方法。

示例二:自定义颜色,让饼图更具吸引力

下面是我们的第二个饼图示例代码,展示如何自定义饼图的颜色:

from pyecharts import options as opts  # 导入配置模块
from pyecharts.charts import Pie       # 导入饼图模块
from pyecharts.faker import Faker      # 导入模拟数据生成器c = (Pie()  # 创建饼图对象# 添加数据,使用Faker生成模拟数据.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])# 设置饼图的颜色.set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])# 设置全局配置,添加标题.set_global_opts(title_opts=opts.TitleOpts(title="Pie-设置颜色"))# 设置系列配置,定制标签格式.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))# 注释掉的代码用于输出为HTML文件#.render("pie_set_color.html")
)
c.render_notebook()  # 在Notebook中渲染图表

代码解析

  1. 导入必要的模块:与第一个示例相同

  2. 创建饼图对象:与第一个示例相同

  3. 添加数据:与第一个示例相同

  4. 设置饼图颜色

    • .set_colors() 方法用于设置饼图中各个扇形区域的颜色
    • 参数是一个颜色字符串列表,可以使用颜色名称或十六进制颜色代码
    • 这里我们使用了七种不同的颜色:蓝色、绿色、黄色、红色、粉色、橙色和紫色
  5. 设置全局配置:与第一个示例类似,但标题改为"Pie-设置颜色"

  6. 设置系列配置:与第一个示例相同

  7. 渲染图表:与第一个示例相同

运行效果

运行代码后,你会看到一个色彩丰富的饼图。每个扇形区域都采用了我们指定的颜色,使得不同类别之间的区分更加明显。图表标题"Pie-设置颜色"准确传达了示例的核心内容。
在这里插入图片描述

设计建议:选择颜色时,可以根据数据的含义或行业惯例进行搭配。例如,财务数据中常用绿色表示增长,红色表示下降;也可以使用渐变色系,使图表更具视觉层次感。此外,确保颜色对比度符合无障碍标准,让所有读者都能清晰识别。

示例三:玫瑰图进阶,展示数据的相对差异

玫瑰图是饼图的一种变体,它通过将扇形区域的半径或面积进行缩放,以强调数据之间的差异。下面是玫瑰图的示例代码:

from pyecharts import options as opts  # 导入配置模块
from pyecharts.charts import Pie       # 导入饼图模块
from pyecharts.faker import Faker      # 导入模拟数据生成器v = Faker.choose()  # 生成类别名称
c = (Pie()  # 创建饼图对象.add("",  # 不设置系列名称[list(z) for z in zip(v, Faker.values())],  # 数据列表radius=["30%", "75%"],  # 内半径和外半径center=["25%", "50%"],  # 饼图中心位置rosetype="radius",  # 玫瑰图类型:按半径缩放label_opts=opts.LabelOpts(is_show=False),  # 不显示标签).add("",  # 不设置系列名称[list(z) for z in zip(v, Faker.values())],  # 数据列表radius=["30%", "75%"],  # 内半径和外半径center=["75%", "50%"],  # 饼图中心位置rosetype="area",  # 玫瑰图类型:按面积缩放).set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))  # 设置全局配置#.render("pie_rosetype.html")  # 注释掉的代码用于输出为HTML文件
)
c.render_notebook()  # 在Notebook中渲染图表

代码解析

  1. 导入必要的模块:与前两个示例相同

  2. 生成类别名称v = Faker.choose() 生成一组类别名称,将用于两个玫瑰图

  3. 创建饼图对象:与前两个示例相同

  4. 添加第一个玫瑰图

    • .add() 方法用于向饼图添加数据
    • radius=["30%", "75%"] 设置内半径和外半径,创建环形效果
    • center=["25%", "50%"] 设置饼图中心位置,使其位于左侧
    • rosetype="radius" 设置玫瑰图类型为按半径缩放
    • label_opts=opts.LabelOpts(is_show=False) 不显示标签
  5. 添加第二个玫瑰图

    • 与第一个玫瑰图类似,但位置位于右侧 center=["75%", "50%"]
    • rosetype="area" 设置玫瑰图类型为按面积缩放
  6. 设置全局配置:设置图表标题为"Pie-玫瑰图示例"

  7. 渲染图表:与前两个示例相同

运行效果

代码运行后,Notebook中会呈现两个风格迥异的玫瑰图:左侧是按半径缩放的玫瑰图,数据值越大,扇形的半径越长;右侧是按面积缩放的玫瑰图,数据值越大,扇形的面积越大。
在这里插入图片描述

通过比较这两个玫瑰图,我们可以清晰地看到不同缩放方式对数据展示的影响:半径缩放更强调数据的绝对差异,而面积缩放则更适合展示相对比例。这种对比展示方式在需要突出数据多维度特征时非常有效。

应用场景:玫瑰图特别适合展示周期性数据(如月度销售数据)或多类别对比数据(如不同产品的市场份额随时间的变化)。

示例四:环形饼图与图例优化

下面是我们的第四个饼图示例代码,展示如何设置饼图的半径和图例位置:

from pyecharts import options as opts  # 导入配置模块
from pyecharts.charts import Pie       # 导入饼图模块
from pyecharts.faker import Faker      # 导入模拟数据生成器c = (Pie()  # 创建饼图对象.add("",  # 不设置系列名称[list(z) for z in zip(Faker.choose(), Faker.values())],  # 数据列表radius=["40%", "75%"],  # 设置内半径和外半径).set_global_opts(title_opts=opts.TitleOpts(title="Pie-Radius"),  # 设置标题legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),  # 设置图例).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 设置标签格式#.render("pie_radius.html")  # 注释掉的代码用于输出为HTML文件
)
c.render_notebook()  # 在Notebook中渲染图表

代码解析

  1. 导入必要的模块:与前三个示例相同

  2. 创建饼图对象:与前三个示例相同

  3. 添加数据:与前三个示例相同

  4. 设置饼图半径

    • radius=["40%", "75%"] 设置饼图的内半径和外半径,创建环形效果
    • 内半径为整个图表宽度的40%,外半径为75%
  5. 设置全局配置

    • title_opts=opts.TitleOpts(title="Pie-Radius") 设置图表标题为"Pie-Radius"
    • legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%") 设置图例
      • orient="vertical" 设置图例为垂直方向
      • pos_top="15%" 设置图例顶部距离图表顶部的距离为15%
      • pos_left="2%" 设置图例左侧距离图表左侧的距离为2%
  6. 设置系列配置:与前三个示例相同

  7. 渲染图表:与前三个示例相同

运行效果

运行代码后,一个精致的环形饼图会出现在Notebook中。图表标题"Pie-Radius"明确了示例的主题,左侧垂直排列的图例节省了水平空间,使得图表整体布局更加紧凑。
在这里插入图片描述

环形饼图相比普通饼图具有独特的优势:它不仅保留了饼图展示比例关系的功能,还可以在中心区域添加额外的信息(如总计数据、标题或其他图表)。通过调整内半径和外半径的比例,我们可以创建不同风格的环形效果,从细环到宽环,满足各种设计需求。

布局技巧:当图表中类别较多时,垂直排列的图例比水平排列更节省空间,也更易于阅读。

示例五:灵活调整饼图位置,打造专业布局

下面是我们的第五个饼图示例代码,展示如何调整饼图的位置:

from pyecharts import options as opts  # 导入配置模块
from pyecharts.charts import Pie       # 导入饼图模块
from pyecharts.faker import Faker      # 导入模拟数据生成器c = (Pie() .add("",[list(z) for z in zip(Faker.choose(), Faker.values())],center=["35%", "50%"], ).set_global_opts(title_opts=opts.TitleOpts(title="Pie-调整位置"),legend_opts=opts.LegendOpts(pos_left="15%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))#.render("pie_position.html") 
)
c.render_notebook()

代码解析

  1. 导入必要的模块:与前四个示例相同

  2. 创建饼图对象:与前四个示例相同

  3. 添加数据:与前四个示例相同

  4. 设置饼图位置

    • center=["35%", "50%"] 设置饼图中心位置
    • 第一个值 “35%” 表示饼图中心距离图表左侧的水平距离
    • 第二个值 “50%” 表示饼图中心距离图表顶部的垂直距离
    • 这两个值都是相对于整个图表区域的百分比
  5. 设置全局配置

    • title_opts=opts.TitleOpts(title="Pie-调整位置") 设置图表标题
    • legend_opts=opts.LegendOpts(pos_left="15%") 设置图例左侧距离图表左侧的距离为15%
  6. 设置系列配置:与前四个示例相同

  7. 渲染图表:与前四个示例相同

运行效果

代码运行后,你会看到一个非居中的饼图,其中心位置偏向左侧(水平位置35%)。图表标题"Pie-调整位置"准确反映了示例的核心内容。
在这里插入图片描述

调整饼图位置是创建复杂可视化仪表盘的关键技能。通过精确控制每个图表的位置,我们可以在同一个画布上展示多个相关图表,打造专业的数据仪表盘。center参数接受百分比值或具体像素值,让我们可以根据需要精确定位饼图。

高级应用:结合多个饼图并调整它们的位置,可以创建对比鲜明的数据展示效果,特别适合展示不同时间段或不同群体的数据对比。

总结与后续内容预告

通过本文的学习,我们已经掌握了pyecharts饼图的五种核心用法:

  • 创建基本饼图并设置标签格式
  • 自定义饼图颜色,提升视觉效果
  • 使用玫瑰图展示数据的相对差异
  • 创建环形饼图并优化图例布局
  • 灵活调整饼图位置,打造专业可视化

这些技巧涵盖了饼图可视化的大部分应用场景,从简单的数据展示到复杂的仪表盘设计,都能满足你的需求。
敬请期待后续内容,让我们一起探索pyecharts饼图的无限可能!

http://www.dtcms.com/a/331479.html

相关文章:

  • 适用工业分选和工业应用的高光谱相机有哪些?什么品牌比较好?
  • 这个就是哈希冲突
  • AI出题人给出的Java后端面经(十四)(日更)
  • 智慧养老解决方案:破解“最后一公里”服务难题
  • 【98页PPT】智慧方案某著名企业汽配行业ERP整体解决方案(附下载方式)
  • BGP笔记及实验
  • 网络层协议——IP
  • 2025年机器视觉与信号处理国际会议(MVSP 2025)
  • 72小时到24小时:台风“杨柳”过后,有鹿机器人如何为园区按下“加速键”?
  • SpringBoot 实现在线查看内存对象拓扑图 —— 给 JVM 装上“透视眼”
  • 面试题之项目中灰度发布是怎么做的
  • 16 ABP Framework CLI
  • Steam修改游戏安装目录
  • 通过beeware制作安卓apk用于获取cpolar网址
  • 【从零开始学习Redis】项目实战-黑马点评D1
  • Docker network网络管理入门教程
  • OpenCV 在图像上绘制二维图形的类cv::plot::Plot2d
  • 心灵笔记:沟通与协作
  • 搭建纯积分商城的关键注意事项
  • MySQL中的DML(二)
  • Spring基础面试题(三)
  • rtthread - ROMFS 的使用方式
  • 【自动驾驶】自动驾驶概述 ① ( 自动驾驶 与 无人驾驶 | 自动驾驶 相关岗位 及 技能需求 )
  • 网络安全应急响应
  • Java Stream API:让业务数据处理更优雅
  • 【120页PPT】人工智能与数字化转型的业财融合(附下载方式)
  • TDengine IDMP 基本功能(6. 无问智推)
  • Web攻防-业务逻辑篇APP隐私合规资源处理违规收集拒绝服务在线检测项目工具
  • 深度剖析!体育数据 API 及电竞数据 API 在体育电竞领域的核心地位
  • java动态代理机制I(初稿)