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

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

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

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

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

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

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

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

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

25人以下免费

目录

python一张图如何画两个饼图

python一张图如何画两个饼图

在Python中绘制一张图上显示两个饼图,可以使用Matplotlib库的subplot功能subplot功能可以将图表分成多个子图每个子图上可以独立绘制一个饼图。Matplotlib是一个非常强大的数据可视化库,它提供了丰富的图表绘制功能。下面将详细介绍如何在一张图上绘制两个饼图。

一、安装和导入Matplotlib库

要使用Matplotlib库,首先需要安装它。如果尚未安装,可以使用以下命令进行安装:

pip install matplotlib

安装完成后,我们可以通过以下代码导入Matplotlib库:

import matplotlib.pyplot as plt

二、创建数据集

在绘制饼图之前,首先需要准备好数据集。假设我们有两个数据集,分别用于绘制两个饼图。以下是一个示例数据集:

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

sizes1 = [15, 30, 45, 10]

labels2 = ['E', 'F', 'G', 'H']

sizes2 = [20, 25, 35, 20]

这里我们定义了两个标签列表labels1labels2,以及对应的数据列表sizes1sizes2

三、创建子图

接下来,我们需要使用Matplotlib的subplot功能创建子图。可以通过以下代码实现:

fig, (ax1, ax2) = plt.subplots(1, 2)

这行代码创建了一个包含两个子图的图表,ax1ax2分别表示第一个和第二个子图。

四、绘制饼图

在创建好子图后,我们可以在每个子图上绘制饼图。以下是具体代码:

ax1.pie(sizes1, labels=labels1, autopct='%1.1f%%', startangle=90)

ax1.axis('equal') # 保证饼图为圆形

ax2.pie(sizes2, labels=labels2, autopct='%1.1f%%', startangle=90)

ax2.axis('equal') # 保证饼图为圆形

这里我们使用了pie函数来绘制饼图,autopct='%1.1f%%'表示显示百分比,startangle=90表示起始角度为90度,axis('equal')保证饼图为圆形。

五、显示图表

最后,我们可以通过以下代码显示图表:

plt.show()

六、代码汇总

以下是完整代码汇总:

import matplotlib.pyplot as plt

数据集

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

sizes1 = [15, 30, 45, 10]

labels2 = ['E', 'F', 'G', 'H']

sizes2 = [20, 25, 35, 20]

创建子图

fig, (ax1, ax2) = plt.subplots(1, 2)

绘制饼图

ax1.pie(sizes1, labels=labels1, autopct='%1.1f%%', startangle=90)

ax1.axis('equal') # 保证饼图为圆形

ax2.pie(sizes2, labels=labels2, autopct='%1.1f%%', startangle=90)

ax2.axis('equal') # 保证饼图为圆形

显示图表

plt.show()

七、深入理解和扩展

1、调整子图布局

subplots函数可以接受多个参数,用于调整子图的布局。例如,可以通过以下代码创建2行1列的布局:

fig, (ax1, ax2) = plt.subplots(2, 1)

2、添加图表标题

可以使用set_title函数为每个子图添加标题,例如:

ax1.set_title('First Pie Chart')

ax2.set_title('Second Pie Chart')

3、自定义颜色

可以通过传递颜色列表来自定义饼图的颜色,例如:

colors1 = ['#ff9999','#66b3ff','#99ff99','#ffcc99']

ax1.pie(sizes1, labels=labels1, autopct='%1.1f%%', startangle=90, colors=colors1)

4、添加图例

可以使用legend函数为饼图添加图例,例如:

ax1.legend(labels1, loc="best")

ax2.legend(labels2, loc="best")

八、总结

通过本文的介绍,我们详细讲解了如何使用Python的Matplotlib库在一张图上绘制两个饼图。从创建数据集、创建子图、绘制饼图到显示图表,我们一步步讲解了整个过程。同时,我们还介绍了如何调整子图布局、添加标题、自定义颜色和添加图例等高级功能。希望本文能帮助你更好地理解和使用Matplotlib库进行数据可视化。如果你对数据可视化有更多的需求,可以进一步学习Matplotlib的其他功能和技巧。

相关问答FAQs:

如何在同一张图中创建两个饼图?
在Python中,可以使用Matplotlib库轻松地在同一张图中绘制两个饼图。通过调整子图的布局,可以将两个饼图并排或上下放置。使用plt.subplot()函数可以实现这种效果,确保每个饼图的数据和标签设置清晰明了。

可以使用哪些库来绘制饼图?
通常,Matplotlib是绘制饼图的首选库,因其功能强大且易于使用。此外,Seaborn和Plotly等库也能够创建饼图,其中Plotly提供了交互式图形的功能,适合需要动态展示数据的场景。

如何自定义饼图的颜色和标签?
在Matplotlib中,可以通过colors参数自定义饼图的颜色,labels参数设置每个扇区的标签。例如,传递一个颜色列表和标签列表到plt.pie()函数中,可以使图表更加美观和易于理解。通过调整autopct参数,还可以显示每个部分的百分比。

饼图的适用场景有哪些?
饼图适合用于展示各部分在整体中所占的比例,尤其是在分类数据不多时。例如,展示市场份额、预算分配或投票结果等情况下,饼图能直观反映各部分的相对大小。然而,当分类过多时,可能不如条形图或其他类型的图表清晰。

相关文章