精通Python(可视化篇)——第81天:matplotlib绘制不同种类炫酷饼图参数说明+代码实战

作者:carzy2024.01.17 13:48浏览量:13

简介:本文将介绍如何使用matplotlib库绘制各种炫酷的饼图,包括自定义、百分比、多个子图、圆环和嵌套饼图。我们将深入了解每个参数的含义,并通过实战代码演示如何使用它们。通过本文,读者将掌握绘制各种复杂饼图的技巧,并能够根据实际需求定制自己的饼图。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在Python中,matplotlib是一个广泛使用的数据可视化库。除了常见的线图和柱状图外,我们还可以使用matplotlib来绘制各种炫酷的饼图。以下是绘制不同种类饼图的参数说明和代码实战。
一、基本饼图
基本饼图是最简单的饼图类型,用于展示单一数据系列的占比情况。在matplotlib中,可以使用pyplot.pie()函数来绘制基本饼图。以下是一个简单的示例:

  1. import matplotlib.pyplot as plt
  2. # 数据
  3. labels = ['A', 'B', 'C', 'D']
  4. sizes = [15, 30, 45, 10]
  5. # 绘制饼图
  6. plt.pie(sizes, labels=labels, autopct='%1.1f%%')
  7. # 显示图形
  8. plt.show()

参数说明:

  • sizes: 数据系列的大小,表示各部分所占的比例。
  • labels: 各部分的标签。
  • autopct: 用于显示百分比的格式字符串。%1.1f%%表示保留一位小数的百分比格式。
    二、自定义饼图
    除了基本饼图外,我们还可以通过设置各种参数来自定义饼图的外观,例如颜色、字体和标签位置等。以下是一个自定义饼图的示例:
    1. import matplotlib.pyplot as plt
    2. # 数据
    3. labels = ['A', 'B', 'C', 'D']
    4. sizes = [15, 30, 45, 10]
    5. colors = ['red', 'green', 'blue', 'yellow']
    6. explode = (0.1, 0, 0, 0) # 突出显示第一个扇形
    7. # 绘制饼图
    8. plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', explode=explode)
    9. # 显示图形
    10. plt.show()
    参数说明:
  • colors: 各部分的颜色。
  • explode: 一个包含四个元素的元组,用于设置各部分离中心的距离。例如,(0.1, 0, 0, 0)表示第一个扇形突出显示。
    三、百分比标签位置调整(下移)问题解决方法:可以使用参数textpropsfontproperties调整标签位置和字体样式。具体代码如下:python import matplotlib.pyplot as plt labels = ['A', 'B', 'C', 'D'] sizes = [15, 30, 45, 10] autopct='%1.1f%%' textprops = {'fontsize': 12, 'verticalalignment': 'bottom'} fontproperties = {'family': 'sans-serif', 'color': 'darktext', 'weight': 'normal', 'style': 'normal'} plt.pie(sizes, labels=labels, autopct=autopct, textprops=textprops, fontproperties=fontproperties) plt.axis('equal') plt.show()四、多个子图(多图)在matplotlib中,可以使用subplots()函数创建多个子图,并在每个子图中绘制不同的饼图。以下是一个示例: python import matplotlib.pyplot as plt import numpy as np # 数据 data = np.array([[15, 30, 45, 10], [25, 35, 20, 20]]) labels = ['A', 'B', 'C', 'D'] autopct='%1.1f%%' fig, axs = plt.subplots(2) # 在第一个子图中绘制饼图 axs[0].pie(data[0], labels=labels[:len(data[0])], autopct=autopct) axs[0].axis('equal') # 在第二个子图中绘制饼图 axs[1].pie(data[1], labels=labels[len(data[0]):], autopct=autopct) axs[1].axis('equal') # 显示图形 plt.show() 在这个示例中,我们创建了一个2x2的子图网格,并在每个子图中绘制了一个饼图。
article bottom image

相关文章推荐

发表评论