Matplotlib 饼图

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()

输出结果如下:
Matplotlib 饼图

如上所示,同理可以用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()

输出结果如下:
Matplotlib 饼图

饼图显示百分比

因为饼图没有带刻度,无法直观地了解每一块所表示的百分比大小。可以使用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()

输出结果如下:
Matplotlib 饼图

为DataFrame绘制饼图

我们可以用饼图表示DataFrame对象中的数据。但是每幅饼图只能表示一个序列,如下所示,我们只将序列df['series1']绘制成图,我们需要将plot()的kind参数设置成pie, 添加figsize参数使其绘制成一个标准的圆形饼图。如下所示:
Matplotlib 饼图

极客教程相关文章推荐:
Matplotlib 水平条形图
Matplotlib 条形图
Matplotlib 直方图
Matplotlib 线性图
Matplotlib 添加图例
Matplotlib 添加文本

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程