在平时处理数据的时候,因为数据可视化更能显示数据的关系。而python中的matplotlib库很好地提供了我们2D绘图的方式。于是我打算系统且详细的学习matplotlib,并尽可能地总结各种用法。这个系列就是我我的学习经验总结。
下载并导入matplotlib库
在Pycharm左下方的Python Packages可以快速搜索并下载我们需要的第三方库。
搜索并下载matplotlib库
接着就可以直接import并使用了
import matplotlib
以后大部分使用的都是matplotlib
里的pyplot
方法,为了方便使用,做了以下的简化
import matplotlib.pyplot as plt
matplotlib绘图分为三层。一是容器层,就是我们需要帮图表放置的地方,使用figure()
对画布进行实例化
fig = plt.figure()
可以往里面传入参数。一般使用到的参数为figsize(画布大小),dpi(像素点)。例如以下:
fig = plt.figure(figsize=(7, 10), dpi=100)
在绘制需要的图表前,前提是有一个辅助显示层, 也就是常说的坐标系,使用subplot
对坐标系进行实例化
ax = plt.subplot(1, 1, 1)
# 或者ax = plt.subplot(111)
三个参数表示着ax为fig的1行1列的坐标系组里第一个
坐标系所拥有的属性如下表所示
属性 | 含义 |
---|---|
facecolor | 外观 |
spine | 边框线 |
axis | 坐标轴 |
axis_label | 坐标轴标签 |
tick | 刻度 |
tick_label | 刻度标签 |
grid | 网格 |
title | 标题 |
legend | 图例 |
坐标系的属性设置方法后面再详细讲解。
在准备好画布和坐标系之后,就可以开始绘制目标图表了。在这里我并不打算详细讲完所有绘图方法,而是分为后面几篇详细讲,这里就简单讲述一下这个部分。利用最常见的plot()
在坐标系里绘出需要的曲线。
ax.plot(x, y)
实例如下
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi)
fig = plt.figure(figsize=(6, 6), dpi=100)
ax = plt.subplot(111)
ax.plot(x, np.sin(x))
plt.show()
得图如下
注意:
如果在最后没有添加plt.show()
这一行,则创建的图像会一直在缓存中,并不不会显示出来。
如果需要将绘制好的图像保存下来的话,则需要在plt.show()
前,将缓存中的图像保存到目标路径中,使用的方法是plt.savefig()
,需要传入的参数是目标路径的字符串。
修改如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi)
fig = plt.figure(figsize=(6, 6), dpi=100)
ax = plt.subplot(111)
ax.plot(x, np.sin(x))
plt.savefig('fig1.png')
plt.show()