设为首页收藏本站language 语言切换
查看: 2380|回复: 1
收起左侧

如何使用Python绘制饼图

[复制链接]
发表于 2020-8-19 17:35:38 | 显示全部楼层 |阅读模式
  这里说的饼图是软件开发领域的,饼图是圆形统计图,整个图表的区域代表100%或全部数据,饼图中显示的饼图区域代表数据部分的百分比。饼图的各个部分称为楔形,楔形的弧长决定了饼图中楔形的面积,楔形的面积确定零件相对于整体的相对量子或百分比。饼图经常用于业务演示中,因为它们可以快速总结业务活动,例如销售,运营等。饼形图还大量用于调查结果,新闻文章,资源使用图中。那么如何使用Python绘制饼图?www.zpedu.com
  使用Python Matplotlib绘制简单的饼图
  可以使用pyplot模块中的pie()函数绘制饼图。以下python 代码示例使用pie()函数绘制了一个饼图。
  默认情况下,pyplot的pie()功能沿逆时针方向排列饼图中的饼形或楔形。
  例:
  1. <p>  # import the pyplot library</p>
  2. <p>  import matplotlib.pyplot as plotter</p>
  3. <p>  # The slice names of a population distribution pie chart</p>
  4. <p>  pieLabels = 'Asia', 'Africa', 'Europe', 'North America', 'South America',
  5. 'Australia'</p>
  6. <p>  # Population data</p>
  7. <p>  populationShare = [59.69, 16, 9.94, 7.79, 5.68, 0.54]</p>
  8. <p>  figureObject, axesObject = plotter.subplots()</p>
  9. <p>  # Draw the pie chart</p>
  10. <p>  axesObject.pie(populationShare,</p>
  11. <p>  labels=pieLabels,</p>
  12. <p>  autopct='%1.2f',</p>
  13. <p>  startangle=90)</p>
  14. <p>  # Aspect ratio - equal means pie is a circle</p>
  15. <p>  axesObject.axis('equal')</p>
  16. <p>  plotter.show()</p>
复制代码

  在饼图中创建楔形以爆炸:
  使用饼图函数的explode参数,可以使饼图的楔形从饼图的其余楔形中爆炸。
  explode 是一个元组,其中每个元素都对应于饼图的楔形。
  元组的长度应等于饼图中的饼图数。
  除此以外 matplotlib 将引发类型的异常 ValueError。
  例:
  1. <p>  explodeTuple = (0.1, 0.0, 0.0, 0.0, 0.0, 0.0)</p>
  2. <p>  # Draw the pie chart</p>
  3. <p>  axesObject.pie(populationShare, explode=explodeTuple,</p>
  4. <p>  labels=pieLabels,</p>
  5. <p>  autopct='%1.2f',</p>
  6. <p>  startangle=90)</p>
复制代码

  在上面的代码片段中,pie()函数与元组 一起传递 给explode参数。元组中只有第一个元素 是小数,而其他所有元素都为零,这将使饼图的第一个楔形图与其余的图看起来不同。
  使饼图的多个楔形爆炸:
  上面的示例仅使饼图的楔形之一爆炸。
  在以下代码段中,将一个元组提供给pie()函数的explode参数。元组的第一个和最后一个条目为非零分数,从而使饼图的第一个和最后一个楔形爆炸。
  基于元组中元素的数值,楔形会爆炸到离饼图中心点相对较高或较低的距离。
  负值将使楔形出现在与指定的原始位置相反的方向上。
  例:
  1. <p>  explodeTuple = (0.1, 0.0, 0.0, 0.0, 0.0, 0.8)</p>
  2. <p>  # Draw the pie chart</p>
  3. <p>  axesObject.pie(populationShare, explode=explodeTuple,</p>
  4. <p>  labels=pieLabels,</p>
  5. <p>  autopct='%1.2f',</p>
  6. <p>  startangle=90)</p>
复制代码

  在使用Matplotlib绘制的饼图中自定义颜色:
  可以使用pie()函数的参数颜色来自定义饼图中楔形的颜色。colors参数是一个元组,其中包含要为饼图的楔形循环的颜色列表。
  例:
  1. <p>  # import the pyplot library</p>
  2. <p>  import matplotlib.pyplot as plotter</p>
  3. <p>  # Guest age group</p>
  4. <p>  ageGroupLabel = 'Below 5', '5-10', '10-15', '15-20', '20-30', '30-40',
  5. '40-50', '50-60', '60-80', '80-100', 'Above 100'</p>
  6. <p>  # Number of Guests expected in age group</p>
  7. <p>  guestNumbers = [5, 10, 10, 15, 10, 30, 25, 25, 20, 15, 10]</p>
  8. <p>  figureObject, axesObject = plotter.subplots()</p>
  9. <p>  explode = (0.4, 0.0, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.3)</p>
  10. <p>  colors = ("red", "green", "orange", "cyan", "brown", "grey", "blue",
  11. "indigo", "beige", "yellow")</p>
  12. <p>  # Draw the pie chart</p>
  13. <p>  axesObject.pie(guestNumbers,</p>
  14. <p>  explode = explode,</p>
  15. <p>  colors = colors,</p>
  16. <p>  labels = ageGroupLabel,</p>
  17. <p>  autopct = '%1.2f',</p>
  18. <p>  startangle = 90)</p>
  19. <p>  # Aspect ratio</p>
  20. <p>  axesObject.axis('equal')</p>
  21. <p>  plotter.show()</p>
  22. <p>  在输出中,由于在达到“ 100岁以上”年龄组时所有颜色均已用尽,因此将从头开始再次进行颜色设置,即将红色分配给与该年龄段的儿童相同的“
  23. 100岁以上”年龄组。</p>
  24. <p>  自定义Matplotlib饼图:</p>
  25. <p>  1.可以自定义Matplotlib.pyplot绘制的饼图的几个方面。</p>
  26. <p>  2.startangle参数将饼图旋转指定的度数。旋转是逆时针方向,并在饼图的X轴上执行。</p>
  27. <p>  3.可以使用pie()函数的shadow参数提供阴影效果。传递True将使阴影出现在饼图边缘下方。默认情况下,shadow的值为False,并且饼图不会有阴影。</p>
  28. <p>  4.可以使用楔子属性参数进一步定制饼图的楔子。可以使用名称值对描述楔形属性的python字典作为楔形属性参数来传递。</p>
  29. <p>  5.通过将frame参数设置为True,将围绕饼图绘制轴框架。</p>
  30. <p>  6.arc()函数的Autopct参数控制百分比在楔形中的显示方式。可以指定以%开头的格式字符串,也可以指定函数。例如,%。1f将以25.0、35.2等格式显示百分比值。%.2f
  31. %%将以50.25、75.5等格式显示百分比值。</p>
  32. <p>  例:</p>
  33. <p>  import matplotlib.pyplot as plotter</p>
  34. <p>  # Distribution of n-grams in a paragraph - maximum wordlength 5</p>
  35. <p>  wedgeLabels = ("Unigram", "Bigram", "Trigram", "Four-gram", "Five-gram",
  36. "Others")</p>
  37. <p>  # Percentage of n-grams</p>
  38. <p>  ngramPercent = (5, 5, 10, 5, 10, 65)</p>
  39. <p>  figureObject, axesObject = plotter.subplots()</p>
  40. <p>  axesObject.pie(ngramPercent,</p>
  41. <p>  labels = wedgeLabels,</p>
  42. <p>  shadow = True,</p>
  43. <p>  frame = True,</p>
  44. <p>  startangle = 120,</p>
  45. <p>  autopct = '%.1f%%',</p>
  46. <p>  wedgeprops = { 'linewidth' : 3,</p>
  47. <p>  'edgecolor' : "orange" })</p>
  48. <p>  axesObject.axis('equal')</p>
  49. <p>  plotter.show()</p>
复制代码

  以上就是关于如何使用Python绘制饼图的全部内容,想了解更多关于Python的信息,请继续关注我们。

发表于 2020-12-24 07:18:38 | 显示全部楼层
不错的代码,感谢分享。
沙发 2020-12-24 07:18:38 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-27 12:55 , Processed in 0.066027 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表