通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

Python中如何做饼状图

Python中如何做饼状图

在Python中做饼状图,你可以使用Matplotlib、Seaborn、Plotly等工具,推荐使用Matplotlib、易于使用、功能强大、支持多种自定义。 以下将详细介绍如何使用Matplotlib绘制饼状图。

一、使用MATPLOTLIB绘制饼状图

Matplotlib 是Python中最常用的数据可视化库之一。它提供了丰富的绘图功能,包括绘制饼状图。

1、安装MATPLOTLIB

在使用Matplotlib之前,需要先安装该库。可以通过pip命令进行安装:

pip install matplotlib

安装完成后,就可以在Python脚本中导入Matplotlib并开始绘图。

2、基本饼状图绘制

首先,创建一个简单的饼状图。假设我们有以下数据:

  • 分类A:40%
  • 分类B:30%
  • 分类C:20%
  • 分类D:10%

import matplotlib.pyplot as plt

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

绘制饼状图

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)

保证饼状图是圆形的

plt.axis('equal')

显示图表

plt.show()

在上述代码中:

  • labels 是分类标签。
  • sizes 是每个分类的百分比。
  • autopct 参数用于显示百分比,格式为小数点后一位。
  • startangle 参数用于设置饼状图起始角度。
  • plt.axis('equal') 保证饼状图是圆形的。

3、添加阴影和突出部分

我们可以通过设置参数来为饼状图添加阴影或突出某一部分。

import matplotlib.pyplot as plt

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

explode = (0.1, 0, 0, 0) # 突出显示第一个部分

绘制饼状图

plt.pie(sizes, labels=labels, explode=explode, autopct='%1.1f%%', shadow=True, startangle=140)

保证饼状图是圆形的

plt.axis('equal')

显示图表

plt.show()

在这段代码中:

  • explode 参数用于突出显示饼状图的某一部分,值越大,突出效果越明显。
  • shadow 参数用于添加阴影效果。

4、自定义颜色

可以通过设置 colors 参数来自定义饼状图的颜色。

import matplotlib.pyplot as plt

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']

绘制饼状图

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)

保证饼状图是圆形的

plt.axis('equal')

显示图表

plt.show()

在这段代码中,colors 参数用于设置每个部分的颜色。

5、设置饼状图标题和图例

可以通过 plt.titleplt.legend 方法为饼状图添加标题和图例。

import matplotlib.pyplot as plt

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']

绘制饼状图

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)

添加标题

plt.title('Example Pie Chart')

添加图例

plt.legend(labels, loc="best")

保证饼状图是圆形的

plt.axis('equal')

显示图表

plt.show()

在这段代码中:

  • plt.title 用于设置饼状图的标题。
  • plt.legend 用于添加图例并设置其位置。

6、保存图表

可以通过 plt.savefig 方法将图表保存为文件。

import matplotlib.pyplot as plt

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']

绘制饼状图

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)

添加标题

plt.title('Example Pie Chart')

添加图例

plt.legend(labels, loc="best")

保证饼状图是圆形的

plt.axis('equal')

保存图表为文件

plt.savefig('pie_chart.png')

显示图表

plt.show()

在这段代码中,plt.savefig 方法用于将饼状图保存为PNG格式的文件。

二、使用SEABORN绘制饼状图

Seaborn 是基于Matplotlib的高级数据可视化库,虽然Seaborn本身没有直接绘制饼状图的方法,但可以结合Matplotlib来实现。

1、安装SEABORN

在使用Seaborn之前,需要先安装该库。可以通过pip命令进行安装:

pip install seaborn

2、结合MATPLOTLIB绘制饼状图

我们可以使用Matplotlib绘制饼状图,并使用Seaborn进行美化。

import matplotlib.pyplot as plt

import seaborn as sns

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

设置Seaborn样式

sns.set(style="whitegrid")

绘制饼状图

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)

添加标题

plt.title('Example Pie Chart with Seaborn')

保证饼状图是圆形的

plt.axis('equal')

显示图表

plt.show()

在这段代码中:

  • sns.set(style="whitegrid") 用于设置Seaborn的样式。

三、使用PLOTLY绘制饼状图

Plotly 是另一个强大的数据可视化库,特别适用于交互式图表。

1、安装PLOTLY

在使用Plotly之前,需要先安装该库。可以通过pip命令进行安装:

pip install plotly

2、基本饼状图绘制

使用Plotly绘制饼状图非常简单。假设我们有以下数据:

import plotly.graph_objects as go

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

创建饼状图

fig = go.Figure(data=[go.Pie(labels=labels, values=sizes, textinfo='label+percent', insidetextorientation='radial')])

显示图表

fig.show()

在这段代码中:

  • go.Figure 用于创建图表对象。
  • go.Pie 用于创建饼状图。

3、添加自定义样式

可以通过设置参数来自定义饼状图的样式。

import plotly.graph_objects as go

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

创建饼状图

fig = go.Figure(data=[go.Pie(labels=labels, values=sizes, textinfo='label+percent', insidetextorientation='radial',

marker=dict(colors=['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'],

line=dict(color='#000000', width=2)))])

添加标题

fig.update_layout(title_text='Example Pie Chart with Plotly')

显示图表

fig.show()

在这段代码中:

  • marker 参数用于设置颜色和边框样式。
  • fig.update_layout 用于设置图表的布局和标题。

4、保存图表

可以通过 fig.write_image 方法将图表保存为文件。

import plotly.graph_objects as go

数据

labels = ['A', 'B', 'C', 'D']

sizes = [40, 30, 20, 10]

创建饼状图

fig = go.Figure(data=[go.Pie(labels=labels, values=sizes, textinfo='label+percent', insidetextorientation='radial',

marker=dict(colors=['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'],

line=dict(color='#000000', width=2)))])

添加标题

fig.update_layout(title_text='Example Pie Chart with Plotly')

保存图表为文件

fig.write_image('plotly_pie_chart.png')

显示图表

fig.show()

在这段代码中,fig.write_image 方法用于将饼状图保存为PNG格式的文件。

总结

以上介绍了如何使用Matplotlib、Seaborn和Plotly在Python中绘制饼状图。Matplotlib 是最基础的库,功能强大且灵活;Seaborn 提供了更美观的默认样式;Plotly 则适用于交互式图表,并且提供了丰富的自定义选项。

对于简单的饼状图,可以选择Matplotlib;如果需要更美观的默认样式,可以结合Seaborn使用;如果需要交互式图表,可以选择Plotly。根据实际需求选择合适的工具,能够更好地满足数据可视化的需求。

相关问答FAQs:

如何在Python中创建饼状图?
在Python中,创建饼状图可以使用Matplotlib库。首先,需要安装Matplotlib库,如果尚未安装,可以通过命令pip install matplotlib进行安装。之后,可以通过以下步骤创建饼状图:导入Matplotlib,准备数据,使用plt.pie()函数绘制饼状图,并使用plt.show()展示结果。具体代码示例如下:

import matplotlib.pyplot as plt

# 数据准备
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # 只“爆炸”第一块

# 绘制饼状图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')  # 使饼图为圆形
plt.show()

饼状图中如何添加标签和百分比?
在使用plt.pie()函数绘制饼状图时,可以通过labels参数添加每个扇区的标签,通过autopct参数添加百分比。autopct可以设置格式字符串,例如'%1.1f%%'表示保留一位小数并添加百分号。这样可以使饼状图更具可读性和信息量。

如何自定义饼状图的颜色和样式?
饼状图的颜色可以通过colors参数自定义,传入一个颜色列表来指定每个扇区的颜色。除了基本颜色,也可以使用RGB值或HTML色码来设置更丰富的色彩。其他样式如阴影效果,可以通过设置shadow=True来实现,增加图表的立体感。

相关文章