Matplotlib 饼图,饼图可以用来表示数据,使用函数pie()
函数可以很方便地绘制饼图,该函数仍然以一列数据作为主要参数,数据可以直接选用百分比(总和为100),也可以选用每种类别的实际数据,pie()
函数会自动计算每个类别所占比例。
阅读本章内容可以先了解极客教程的前面几个章节介绍的Matplotlib
相关知识:条形图,直方图,线性图,添加图例。
绘制饼图
pie()
函数仍然需要参数来设定关键特征,比如,将颜色列表设置给colors
参数,为输入的数据序列分配颜色。将标签列表设置给labels
参数,为每一块添加标签。
import matplotlib.pyplot as plt
labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']
values = [10, 30, 45, 15]
colors = ['yellow', 'green', 'red', 'blue']
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
plt.pie(values, labels=labels, colors=colors)
plt.axis('equal')
plt.show()
输出结果如下:
如上所示,同理可以用title()
函数为饼图添加标题,可以用startangle
参数调整饼图的旋转角度,该参数接收一个0-360
的整数,默认值为0。
import matplotlib.pyplot as plt
labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']
values = [10, 30, 45, 15]
colors = ['yellow', 'green', 'red', 'blue']
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
explode = [0.3, 0, 0, 0]
plt.pie(values, labels=labels, colors=colors, explode=explode, startangle=180)
plt.axis('equal')
plt.show()
输出结果如下:
饼图显示百分比
因为饼图没有带刻度,无法直观地了解每一块所表示的百分比大小。可以使用autopct
参数,在每一块的中间位置添加文本标签来显示百分比。还可以用shadow
参数添加阴影效果。
如下所示:
import matplotlib.pyplot as plt
labels = ['Nokia', 'Samsung', 'Apple', 'Lumia']
values = [10, 30, 45, 15]
colors = ['yellow', 'green', 'red', 'blue']
plt.title("geek-docs.com", fontsize=20, fontname="Times New Roman")
explode = [0.3, 0, 0, 0]
plt.pie(values, labels=labels, colors=colors, explode=explode, startangle=180,
shadow=True, autopct='%1.1f%%')
plt.axis('equal')
plt.show()
输出结果如下:
为DataFrame绘制饼图
我们可以用饼图表示DataFrame对象中的数据。但是每幅饼图只能表示一个序列,如下所示,我们只将序列df['series1']
绘制成图,我们需要将plot()的kind
参数设置成pie
, 添加figsize
参数使其绘制成一个标准的圆形饼图。如下所示:
极客教程相关文章推荐:
Matplotlib 水平条形图
Matplotlib 条形图
Matplotlib 直方图
Matplotlib 线性图
Matplotlib 添加图例
Matplotlib 添加文本