饼图绘制示例。
此示例展示了饼图的各种参数。

标记切片绘制一个动物饼图并标记切片。要添加标签,将标签列表传递给labels参数

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]

fig, ax = plt.subplots()
ax.pie(sizes, labels=labels)
plt.show()

饼状图的每一片都是一个 patches.Wedge 对象;因此,除了这里展示的自定义之外,每个楔形还可以使用 wedgeprops 参数进行自定义,如在嵌套饼图中所示。

自动标记切片

向autopct传递一个函数或格式字符串以标注切片。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]

fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()

默认情况下,标签值是从切片的百分比大小获取的。

彩色切片

传递一个颜色列表给 colors 以设置每个切片的颜色。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]

fig, ax = plt.subplots()
ax.pie(sizes, labels=labels,
       colors=['olivedrab', 'rosybrown', 'gray', 'saddlebrown'])
plt.show()

孵化切片

向hatch传递一个填充图案列表,以设置每个切片的图案。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]

fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, hatch=['**O', 'oO', 'O.O', '.||.'])
plt.show()

交换标签和自动百分比文本的位置

使用labeldistance和pctdistance参数分别定位标签和autopct文本。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%',
       pctdistance=1.25, labeldistance=.6)
plt.show()

labeldistance 和 pctdistance 是半径的比例;因此它们在饼图中心为 0,在饼图边缘为 1,并且可以设置大于 1 以将文本放置在饼图外部。

爆炸、阴影和旋转切片

除了基本的饼图,这个演示还展示了一些可选功能:使用explode偏移某个扇区使用shadow添加投影使用startangle自定义起始角度这个示例对扇区进行了排序、分离(爆炸)并旋转它们

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')

fig, ax = plt.subplots()
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
       shadow=True, startangle=90)
plt.show()

默认起始角度是0,这会使第一个扇形("青蛙")从正x轴开始。此示例将起始角度设置为90,使所有扇形逆时针旋转90度,并且青蛙扇形从正y轴开始。

控制大小

通过更改半径参数,通常还会调整文本大小以获得更好的视觉效果,饼图可以缩放。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')

fig, ax = plt.subplots()

ax.pie(sizes, labels=labels, autopct='%.0f%%',
       textprops={'size': 'smaller'}, radius=0.5)
plt.show()

修改阴影

阴影参数可以选择性地接受带有 Shadow 补丁参数的字典。这可用于修改默认阴影。

import matplotlib.pyplot as plt

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')


fig, ax = plt.subplots()
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
       shadow={'ox': -0.04, 'edgecolor': 'none', 'shade': 0.9}, startangle=90)
plt.show()

参考文献:https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_features.html

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐