扫码一下
查看教程更方便
饼图只能显示一个Series结构数据。饼图显示一个 Series 数据中项目(称为楔形)的大小,与项目总和成正比。饼图中的数据点显示为整个饼图的百分比。
可以使用 pyplot 中的 pie() 方法来绘制饼状图。pie() 可生成表示数组中数据的饼图。每个楔形的分数面积由x/sum(x)
给出。如果 sum(x)< 1,则 x 的值直接给出小数区域,数组不会被归一化。生成的饼图将有一个大小为 1 - sum(x) 的空楔。
pie() 方法语法格式如下:
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]
参数说明:
下面我们先生成一个普通的饼状图
import matplotlib.pyplot as plt
import numpy as np
y = np.array([36, 24, 27, 13])
plt.pie(y)
plt.show()
图形如下
接下来我们修改每块儿区域的颜色
import matplotlib.pyplot as plt
import numpy as np
y = np.array([36, 24, 27, 13])
plt.figure("迹忆客 - jiyik.com");
plt.title("JIYIK 饼状图")
plt.pie(y, labels=['A', 'B', 'C', 'D'], # 设置饼图标签
colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
)
plt.show()
图形如下
最后使用以下代码显示注册各种计算机语言课程的学生列表的饼状图。在 autopct=%1.2f%参数的帮助下,比例百分比显示在相应的楔形内。
from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.axis('equal')
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.pie(students, labels = langs,autopct='%1.2f%%')
plt.show()
图形如下