文章目录
简介
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。
Matplotlib 的默认配置都允许用户自定义。你可以调整大多数的默认配置:图片大小和分辨率(dpi)、线宽、颜色、风格、坐标轴、坐标轴以及网格的属性、文字与字体属性等。不过,matplotlib 的默认配置在大多数情况下已经做得足够好,你可能只在很少的情况下才会想更改这些默认配置。
1. 安装
pip install matplotlib -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
2. 中文问题
matplotlib是Python著名的绘图库,默认并不支持中文显示,因此在不经过修改的情况下,无法正确显示中文。
解决方法如下:
修改matplotlibrc文件
进入Python安装目录下的Lib\site-packages\matplotlib\mpl-data\matplotlibrc
文件,删除font.family
和font.sans-serif
两行前的#
,并在font.sans-serif
后添加微软雅黑字体Microsoft YaHei
,代码如下:
font.family : sans-serif
font.sans-serif : Microsoft YaHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
代码中别忘了unicode编码
# 导入包
import matplotlib.pyplot as plt
# 画图
plt.plot([1, 2, 3, 4])
# 设置X轴名称
plt.xlabel(u'X 轴名称')
# 设置Y轴名称
plt.ylabel(u'Y 轴名称')
# 显示图像
plt.show()
3. 核心原理
使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
一个figure(画布)上,可以有多个区域axes(坐标系),我们在每个坐标系上绘图,也就是说每个axes(坐标系)中,都有一个axis(坐标轴)。
特别注意 在matplotlib中,figure画布和axes坐标轴是不可见的,我们能够看到的就是基于一个axis坐标轴的各种图形。
基本流程
1. 导入包
通常来说,matplot的使用会伴随这大量的数据处理,几何函数图像等,所以一般情况下我们还会导入numpy
# 导入包
import matplotlib.pyplot as plt
import numpy as np
2. 创建figure(画布)
创建方式 | 描述 | 优点 | 缺点 |
---|---|---|---|
隐式创建 | 系统自动创建画布以及坐标系 | 简单、快速 | 拿不到axes对象。无法针对每个做坐标系单独配置 |
显式创建 | 自助创建画布以及坐标系 | 每一个画布、坐标系都可以单独配置。 | 创建过程较为复杂 |
隐式创建
# 导入包
import matplotlib.pyplot as plt
import numpy as np
# 大小
plt.figure(figsize=(10, 5))
# 画布名称
plt.title(u"测试图片1")
# X 轴名
plt.xlabel(u"图片1:X")
# Y 轴名
plt.ylabel(u"图片1:Y")
# 轴范围
plt.axis([-10, 10, -1, 1])
# 画图
x = np.linspace(-10, 10, 1000)
y = np.sin(x)
plt.plot(x, y)
# 显示图像
plt.show()
显式创建
# 导入包
import matplotlib.pyplot as plt
import numpy as np
# 创建画布
fig = plt.figure()
# 大小
fig.figsize = (10, 5)
# 坐标系
ax1 = fig.add_subplot(2, 2, (1, 2))
ax2 = fig.add_subplot(2,