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

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

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

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

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

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

1. 基本饼图绘制

1.1. 数据准备

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

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

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

比如:

python 复制代码
import plotly.graph_objects as go

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

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

然后绘制饼图:

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

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

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

1.2. 标签设置

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

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

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

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

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

2. 饼图样式优化

2.1. 切片颜色

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

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

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

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

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

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

2.2. 边框和背景

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

python 复制代码
# 切片边框调整
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 参数用于设置整个图表的背景颜色,选择合适的背景色可以使图表在不同的展示环境中具有更好的视觉效果和可读性。

python 复制代码
# 图表背景色配置
fig.update_layout(paper_bgcolor='lightgray')
fig.show()

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

python 复制代码
# 绘图区域背景设置
fig.update_layout(plot_bgcolor='')

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

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

3. 总结

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

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

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

相关推荐
北洛学Ai1 分钟前
DeepSeek接入飞书多维表格,效率起飞!
信息可视化·数据挖掘·数据分析
汤姆yu2 分钟前
基于python大数据的商品数据可视化分析系统
大数据·python·信息可视化·商品数据
好记忆不如烂笔头abc35 分钟前
oracle-blob导出,在ob导入失败
大数据·数据库·python
程序员一诺39 分钟前
【Python使用】嘿马python数据分析教程第1篇:Excel的使用,一. Excel的基本使用,二. 会员分析【附代码文档】
后端·python
神奇侠20241 小时前
快速入手-基于Django-rest-framework的serializers序列化器(二)
后端·python·django
搬砖的阿wei1 小时前
从零开始学 Flask:构建你的第一个 Web 应用
前端·后端·python·flask
IT从业者张某某1 小时前
Python数据可视化-第4章-图表样式的美化
开发语言·python·信息可视化
草巾冒小子1 小时前
查看pip3 是否安装了Flask
后端·python·flask
开开心心就好2 小时前
便携免安装,畅享近 30 种 PDF 文档处理功能
java·服务器·python·eclipse·pdf·word·excel
凯强同学3 小时前
13届省赛python A组:10.数的拆分
python