python绘制饼图_如何使用Python绘制饼图

本文介绍了如何使用Python的Matplotlib库绘制饼图,包括基本饼图、爆炸式饼图、自定义颜色以及添加阴影、百分比显示等高级特性。饼图常用于展示数据的相对比例,在业务分析、调查结果等领域广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python绘制饼图

如果您是视觉学习者,这里是嵌入式视频

饼形图:

  • 饼图是圆形统计图。
  • 整个图表的区域代表100%或全部数据。
  • 饼图中显示的饼图区域代表数据部分的百分比。
  • 饼图的各个部分称为楔形。
  • 楔形的弧长决定饼图中楔形的面积。
  • 楔形的面积决定了零件相对于整体的相对量子或百分比。
  • 饼图经常用于业务演示中,因为它们可以快速概述业务活动,例如销售,运营等。
  • 饼形图还大量用于调查结果,新闻文章,资源使用图(如磁盘和内存)中。

使用Python Matplotlib绘制简单的饼图

可以使用pyplot模块中的函数pie()绘制饼图。 以下python代码示例使用pie()函数绘制了一个饼图。

默认情况下,pyplot的pie()功能沿逆时针方向排列饼图中的饼形或楔形。

例:

# import the pyplot library
import matplotlib.pyplot as plotter
# The slice names of a population distribution pie chart
pieLabels              = 'Asia' , 'Africa' , 'Europe' , 'North America' , 'South America' , 'Australia'
# Population data
populationShare     = [ 59.69 , 16 , 9.94 , 7.79 , 5.68 , 0.54 ]
figureObject, axesObject = plotter.subplots()
# Draw the pie chart
axesObject.pie(populationShare,
        labels=pieLabels,
        autopct= '%1.2f' ,
        startangle= 90 )
# Aspect ratio - equal means pie is a circle
axesObject.axis( 'equal' )
plotter.show()

输出:

在饼图中创建楔形以爆炸:

使用饼图函数的explode参数,可以使饼图的楔形从饼图的其余楔形中爆炸。

explode是一个元组,其中每个元素都对应于饼图的楔形。

元组的长度应等于饼图中的饼图数。

否则, matplotlib将引发ValueError类型的异常。

例:

explodeTuple = (0.1 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 )
# Draw the pie chart
axesObject.pie(populationShare, explode=explodeTuple,
        labels=pieLabels,
        autopct= '%1.2f' ,
        startangle= 90 )

在上面的代码片段中,pie()函数与元组一起传递给explode参数。 元组中只有第一个元素是小数,而其他所有元素都为零,这只会使饼图的第一个楔形与图表的其余部分分开。

输出:

使饼图的多个楔形爆炸:

上面的示例仅使饼图的楔形之一爆炸。

在以下代码段中,为pie()函数的explode参数提供了一个元组。 元组的第一个和最后一个条目为非零分数,从而使饼图的第一个和最后一个楔形爆炸。

基于元组中元素的数值,楔形会爆炸到离饼图中心点相对较高或较低的距离。

负值将使楔形出现在与指定的原始位置相反的方向上。

例:

explodeTuple = (0.1 , 0.0 , 0.0 , 0.0 , 0.0 , 0.8 )
# Draw the pie chart
axesObject.pie(populationShare, explode=explodeTuple,
        labels=pieLabels,
        autopct= '%1.2f' ,
        startangle= 90 )

输出:

在使用Matplotlib绘制的饼图中自定义颜色:

可以使用pie()函数的参数颜色自定义饼图中的楔形颜色。 colors参数是一个元组,其中包含要为饼图的楔形循环的颜色列表。

例:

# import the pyplot library
import matplotlib.pyplot as plotter
# Guest age group
ageGroupLabel = 'Below 5' , '5-10' , '10-15' , '15-20' , '20-30' , '30-40' , '40-50' , '50-60' , '60-80' , '80-100' , 'Above 100'
# Number of Guests expected in age group
guestNumbers     = [ 5 , 10 , 10 , 15 , 10 , 30 , 25 , 25 , 20 , 15 , 10 ]
figureObject, axesObject = plotter.subplots()
explode = ( 0.4 , 0.0 , 0.0 , 0.0 , 0.5 , 0.5 , 0.0 , 0.0 , 0.0 , 0.0 , 0.3 )
colors  = ( "red" , "green" , "orange" , "cyan" , "brown" , "grey" , "blue" , "indigo" , "beige" , "yellow" )
# Draw the pie chart
axesObject.pie(guestNumbers,
               explode      = explode,
               colors       = colors,
               labels       = ageGroupLabel,
               autopct      = '%1.2f' ,
               startangle   = 90 )
# Aspect ratio
axesObject.axis( 'equal' )
plotter.show()

输出:

在输出中,由于在达到“ 100岁以上”年龄组时所有颜色均已用尽,因此将从头开始再次进行颜色设置,即将红色分配给与该年龄段的孩子相同的“ 100岁以上”年龄组。

自定义Matplotlib饼图:

  • 可以自定义Matplotlib.pyplot绘制的饼图的几个方面。
  • startangle参数将饼图旋转指定的度数。 旋转是逆时针方向,并在饼图的X轴上执行。
  • 可以使用pie()函数的shadow参数提供阴影效果。 传递True将使阴影出现在饼图边缘下方。 默认情况下,shadow的值为False,并且饼图不会有阴影。
  • 可以使用楔子属性参数进一步定制饼图的楔子。 可以使用名称值对描述楔形属性(例如edgecolor,linewidth)的python字典作为楔形属性参数来传递。
  • 通过将frame参数设置为True,将围绕饼图绘制轴框架。
  • arc()函数的Autopct参数控制百分比在楔形中的显示方式。 可以指定以%开头的格式字符串,也可以指定函数。 例如,%。1f将以25.0、35.2等格式显示百分比值。 %.2f %%将以50.25、75.5等格式显示百分比值。

例:

import matplotlib.pyplot as plotter
# Distribution of n-grams in a paragraph - maximum wordlength 5
wedgeLabels     = ( "Unigram" , "Bigram" , "Trigram" , "Four-gram" , "Five-gram" , "Others" )
# Percentage of n-grams
ngramPercent    = ( 5 , 5 , 10 , 5 , 10 , 65 )
figureObject, axesObject = plotter.subplots()
axesObject.pie(ngramPercent,
               labels       = wedgeLabels,
               shadow       = True ,
               frame        = True ,              
               startangle   = 120 ,
               autopct      = '%.1f%%' ,
               wedgeprops   = { 'linewidth' : 3 ,
                                'edgecolor' : "orange" })
axesObject.axis( 'equal' )
plotter.show()

输出:

如果您想查看有关PYTHON的更多教程,请阅读我的全文。 在以下位置查看我的HACKERNOON个人资料和我的YouTube频道 https://youtube.com/gajeshsnaik

翻译自: https://hackernoon.com/how-to-plot-a-pie-chart-using-python-ife3ubf

python绘制饼图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值