『Plotly实战指南』--饼图绘制基础篇

news/2025/4/1 14:03:26/文章来源:https://www.cnblogs.com/wang_yb/p/18800300

在数据可视化的世界里,饼图是一种直观且广泛使用的图表类型。

它能够将数据各个部分占整体的比例关系清晰地展现出来,适用于诸如市场占有率分析、调查结果分布、预算分配等多个领域。

饼图以扇形面积比例直观展示数据分布,适合用于:

  1. 分类数据的占比分析(如市场份额、用户画像)
  2. 少量数据的对比呈现(≤6 个分类最佳)
  3. 快速传达核心结论(如 "最大 / 最小占比项")

本文的主要内容包括饼图的基本绘制步骤、标签与百分比显示设置以及样式基础优化等方面。

1. 基本饼图绘制

1.1. 数据准备

使用 Plotly 绘制饼图时,数据主要通过两个参数进行传递:labelsvalues

  • labels: 用于指定每个数据切片的名称类别,它接受一个字符串列表
  • values:对应各个类别的数值大小,接受一个数值列表或数组

这种数据格式要求使得数据组织清晰明了,便于后续的图表生成。

比如:

import plotly.graph_objects as go# 数据准备
labels = ['类别A', '类别B', '类别C', '类别D']  # 类别标签
values = [45, 25, 15, 15]  # 对应数值

我们首先导入了 Plotlygraph_objects 模块,然后分别定义了类别标签和对应的数值列表,为后续的饼图绘制提供了数据基础。

然后绘制饼图:

# 创建饼图对象
fig = go.Figure(data=[go.Pie(labels=labels, values=values)])
fig.show()

通过 go.Pie() 函数,将准备好的数据传递进去,创建了一个基本的饼图对象。

这个对象包含了饼图的核心数据结构,后续可以通过对 fig 对象的进一步配置来定制图表的显示效果。

1.2. 标签设置

通过 text 参数,可以指定在饼图切片上显示的文本内容。

下面的示例中,我们将 text 设置为与 labels 相同的值,这样每个切片上就会显示对应的类别名称,方便快速识别各个切片所代表的类别。

# 文本标签配置
fig = go.Figure(data=[go.Pie(labels=labels, values=values, text=labels)])

还可以通过textposition='outside'参数将文本标签的位置设置在切片外部,避免文本在切片内部显示可能造成的拥挤和可读性问题。

# 文本位置调整
fig = go.Figure(data=[go.Pie(labels=labels, values=values, textposition='outside')])

2. 饼图样式优化

2.1. 切片颜色

通过 marker=dict(colors=...) 的方式,我们可以直接为每个切片指定颜色,替换 Plotly 的默认颜色方案。

合理选择颜色可以使图表更加美观,并且能够突出重点数据。

# 默认颜色方案调整
fig = go.Figure(data=[go.Pie(labels=labels,values=values,marker=dict(colors=["gold","mediumturquoise","darkorange","lightgreen",]),)],
)
fig.show()

除了通过颜色来突出某些切片以外,还可以使用 pull 参数可以将指定的切片从饼图中心拉出,实现高亮显示的效果。

这种显示方式常用于强调重点数据或异常值。

# 特定切片高亮
fig = go.Figure(data=[go.Pie(labels=labels, values=values, pull=[0, 0.2, 0, 0])])
fig.show()

2.2. 边框和背景

通过 marker=dict(...) 的方式,不仅可以指定切片的颜色,也可以指定边框的颜色和宽度。

# 切片边框调整
fig = go.Figure(data=[go.Pie(labels=labels,values=values,marker=dict(line=dict(color="white", width=5)),)],
)
fig.show()

通过 marker=dict(line=dict(...)) 设置,使切片之间更加分明,提升图表的整洁度和美观度。

paper_bgcolor 参数用于设置整个图表的背景颜色,选择合适的背景色可以使图表在不同的展示环境中具有更好的视觉效果和可读性。

# 图表背景色配置
fig.update_layout(paper_bgcolor='lightgray')
fig.show()

还有plot_bgcolor 参数专门用于设置绘图区域的背景颜色,将其与图表背景色区分开来,增强图表的层次感和专业性。

# 绘图区域背景设置
fig.update_layout(plot_bgcolor='')

还有 opacity 参数,可以调整切片的透明度,使其在与其他图表元素叠加或在不同背景色下展示时更加协调和美观。

# 透明度调节
fig = go.Figure(data=[go.Pie(labels=labels, values=values, opacity=0.8)])

3. 总结

本文介绍了使用 Plotly 绘制基础饼图的方法和步骤,包括数据准备、基本绘制、标签设置以及样式基础优化等方面。

重点介绍了如何通过 labelsvalues 参数传递数据,

利用 textinfotextposition 等参数控制文本显示,以及通过颜色调整、边框设置、背景配置和透明度调节等手段优化饼图的样式,使图表更加美观和专业。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908004.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化图解算法: 二叉树的前序遍历

对于二叉树的相关算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。1. 题目 描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 数据范围:二叉树的节点数量满足 0≤n≤100 ,二叉树节点的…

2025成都.NET开发者Connect圆满结束

2025年成都.NET开发者Connect线下聚会活动于3月29日圆满结束,本次活动吸引了约30位.NET开发者朋友参与,他们分别来自成都各家技术公司,相聚城南华府国际A座24楼会议区,共同探讨.NET+AIGC & Agile101相关话题。大家好,我是Edison。 2025年成都.NET开发者Connect线下聚会…

阿里云矢量图

阿里云矢量图 子比主题集成阿里云矢量图标库完整指南 最后更新:2025年03月29日 | 适用版本:子比主题7.3+一、阿里云项目配置 1.1 创建图标项目访问阿里云矢量图标库并登录搜索图标 → 加入购物车 → 创建新项目时设置: FontClass/Symbol前缀:zb- # 与主题CSS类名兼容 Font…

AMD GPU上对比语言图像预训练(CLIP)模型的交互(下)

3. 步骤3:检查图像和文本 将COCO数据集中的8幅样本图像及其文本描述输入模型,并比较相应特征之间的相似性。 import os import matplotlib.pyplot as plt from PIL import Image# 使用COCO数据集中的图像及其文本描述 image_urls = ["*/6/8378612_34ab6787ae_z.jpg&quo…

AMD GPU上对比语言图像预训练(CLIP)模型的交互(上)

AMD GPU上对比语言图像预训练(CLIP)模型的交互 3.1.1 介绍 对比语言图像预训练(CLIP)是一种连接视觉和自然语言的多模态深度学习模型。它是在OpenAI的论文从自然语言监督中学习可转移的视觉模型(2021)中介绍的,并在大量(4亿)图像字幕对的网络抓取数据上进行了对比训练…

推荐关注《AI芯片开发核心技术详解》(1)、《智能汽车传感器:原理设计应用》(2)、《TVM编译器原理与实践》(3)、《LLVM编译器原理与实践》(4),谢谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

惊!Docker Desktop竟然不会自动释放磁盘空间,C盘告急!

Docker Desktop竟然不会自动释放磁盘占用 > > 操作系统:Windows 11 家庭中文版 (23H2,22631.4037)16GB > > Docker Desktop 版本:v4.34.3 > 1. 缘起 docker pull docker-0.unsee.tech/savatar101/omniparse:0.1 拉取镜像,某个片段卡住,我主动取消了改操…

深入掌握FastAPI与OpenAPI规范的高级适配技巧

title: 深入掌握FastAPI与OpenAPI规范的高级适配技巧 date: 2025/03/30 01:16:11 updated: 2025/03/30 01:16:11 author: cmdragon excerpt: OpenAPI规范是RESTful API的标准描述格式,FastAPI通过自动化Schema生成机制将Pydantic模型和路径操作转换为标准OpenAPI文档,实现实…

‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析

‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析操作系统:Windows 11 家庭中文版 (23H2,22631.4037)16GB Docker Desktop 版本:v4.34.3如果赶时间,可以直接看结论。 Docker Desktop用的频次不是很高,记得之前安装完,用wsl --list -v命…

Prometheus的标签管理

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.标签概述1.什么是标签2.标签主要有两种表现形式3.Prometheus对数据处理的流程二.relabel_configs修改target标签案例1.为targets自定义打标签案例2.使用target_label新增标签2.relabel_configs替换标签…

极速启动,SAE 弹性加速全面解读

本文将深入探讨 SAE 如何通过镜像加速、应用启动加速、CPU Burst 等核心技术手段,实现极速启动与高效运行,帮助用户构建更加稳定、高效的云端应用。作者:牛通(奇卫) 在当今快速发展的云计算时代,业务的稳定性和响应速度成为了企业竞争力的重要标志。无论是应对突发流量还…

Redis缓存穿透、击穿与雪崩:问题分析与解决方案

在现代高并发系统中,Redis作为缓存层被广泛使用,其高效的读写性能为系统提供了强大的支持。然而,在使用Redis缓存的过程中,缓存穿透、击穿和雪崩等问题可能会对系统造成严重影响。本文将围绕这些问题展开讨论,并结合Redis的特性提出具体的解决方案。 一、Redis缓存穿透:如…