专栏文章 Matplotlib 绘制可视化图表

opentest-oper@360.cn · 2022年05月19日 · 最后由 leixs 回复于 2022年06月21日 · 3583 次阅读

背景

在日常工作中经常需要对项目数据统计分析,形成可视化报告,直观的反映项目的质量情况。本文介绍如何使用 matplotlib 库绘制图表的方法,可视化图表常见的有折线图、直方图、柱状图、饼图,其他复杂的图形大都是基于以上几种组合变换而来。

Matplotlib 简介

Matplotlib 是 Python 中最常用的可视化工具之一,可以非常方便地创建 2D 图表和一些基本的 3D 图表,Matplotlib 中最基础的模块是 pyplot,开发者可以仅需要几行代码,便可以生成线形图,直方图,柱状图,条形图,散点图等。

使用 Matplotlib 库基本的绘图流程:
1.创建画布
2.创建子图(可选)
3.添加标题、x 轴名称、y 轴名称
4.设置 x 轴和 y 轴刻度、范围
5.绘制图形
6.显示图形
7.保存图形

实现

首先以最常用的折线图为例,介绍如何使用 matplotlib 库
1.图表中显示中文,先设置字体为宋体

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

2.准备数据,这里是用 numpy 生成了测试数据,实际的项目应用中需要从业务中获取

x = np.arange(0,10,1)   #横轴数据
y = x**2              #纵轴数据

3.创建空白画布并设定画布大小和分辨率

plt.figure(figsize=(6,4),dpi=90)

4.设置图形标题和 x 轴、y 轴名称

plt.title('折线图')
plt.xlabel('x轴')
plt.ylabel('y轴')

5.设置 x、y 轴取值范围和刻度

plt.xlim(0,10)
plt.ylim(0,105)
plt.xticks([0,2,4,6,8,10])
plt.yticks([0,25,50,75,100])

6.调用 plot 方法绘制

plt.plot(x, y, label='平方')

7.显示网格线、图例

plt.legend()
plt.grid(True)

8.最后显示图形

plt.show()

P1
如果需要绘制多条线时,调用几次 plot 函数即可; 折线图的其他样式比如线条的颜色、样式等还有很多,感谢兴趣的小伙伴可以查看 pyplot.plot 函数的帮助文档。
函数原型:

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

其他常见图表

1.直方图
P2
P3

函数原型:

matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)

2.柱状图
普通柱状图比较简单,就不介绍了,下边说说并列状态图和叠加柱状图。

并列柱状图
P4
P5

叠加柱状图
P6
P7

函数原型:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

3.饼图
P8
P9

函数原型:

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=True, data=None)

总结

通过以上的例子,可以了解到 Matplotlib 在绘制可视化图表上的简单高速,只需简单的几行代码就可以生成漂亮的图形;在数据分析的项目中开发人员就可以把工作重心放在数据的获取、处理、分析、存储等核心的业务上。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

Pandas,Matplotlib 这些数据分析行业用的比较多,现在测试行业中用这两块去做数据管理,及结果输出的多吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册