当前位置: 首页 > 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.lryc.cn/news/621284.html

相关文章:

  • QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码)
  • 基于SpringBoot的救援物资管理系统 受灾应急物资管理系统 物资管理小程序
  • 日志系统(log4cpp)
  • Torch -- 卷积学习day2 -- 卷积扩展、数据集、模型
  • AM32电调学习-使用Keil编译uboot
  • JVM的逃逸分析深入学习
  • 一、linux内存管理学习(1):物理内存探测
  • 18 ABP Framework 模块管理
  • Encoder-Decoder Model编码器-解码器模型
  • MCP入门:Python开发者的模型上下文协议实战指南
  • 蓝桥杯STL stack
  • 图论(5)最小生成树算法
  • 我的 LeetCode 日记:Day 37 - 解锁动态规划:完全背包问题
  • opencv基础学习与实战(2)
  • 基于 LDA 模型的安徽地震舆情数据分析
  • Docker build创建镜像命令入门教程
  • 地测管理部绩效考核关键指标与地质数据分析
  • 码上爬第九题【协程+webpack】
  • C++基础(①入门教程)
  • K8s学习----Namespace:资源隔离与环境管理的核心机制
  • **标题:发散创新,探索编程中的平衡设计****摘要**:本文将探讨如何在编程中运用平衡设计思想,通过实例分析与
  • 37 C++ STL模板库6-string_view
  • 设计模式笔记_行为型_责任链模式
  • 仓颉编程语言的Any 类型(Any 接口)
  • Video-R1论文解读
  • 使用keil5 自带的仿真观察GPIO口波形
  • lib.dom.d.ts
  • 《量子雷达》第4章 量子雷达的检测与估计 预习2025.8.14
  • Windows bypassUAC 提权技法详解(一)
  • ACCESS多个时间段查询,只取整点,30分数据