就像之前用 np 作为 NumPy 的简写形式、 pd 作为 Pandas 的简写形式一样,我们也可以在
导入 Matplotlib 时用一些它常用的简写形式:

  1. import matplotlib.pyplot as plt

简易线形图


在所有图形中,最简单的应该就是线性方程 y = f (x) 的可视化了。

  1. x = np.linspace(0, 10, 1000)
  2. plt.plot(x, np.sin(x))
  3. plt.show()

调整图形: 线条的颜色与风格
通常对图形的第一次调整是调整它线条的颜色与风格。 plt.plot() 函数可以通过相应的参数设置颜色与风格。要修改颜色,就可以使用 color 参数,它支持各种颜色值的字符串。

  1. plt.plot(x, np.sin(x - 0), color='blue') # 标准颜色名称
  2. plt.plot(x, np.sin(x - 1), color='g') # 缩写颜色代码(rgbcmyk)

如果不指定颜色, Matplotlib 就会为多条线自动循环使用一组默认的颜色。

与之类似,你也可以用 linestyle 调整线条的风格:

  1. plt.plot(x, x + 0, linestyle='solid')
  2. plt.plot(x, x + 1, linestyle='dashed')
  3. plt.plot(x, x + 2, linestyle='dashdot')
  4. plt.plot(x, x + 3, linestyle='dotted')
  5. # 你可以用下面的简写形式
  6. plt.plot(x, x + 4, linestyle='-') # 实线
  7. plt.plot(x, x + 5, linestyle='--') # 虚线
  8. plt.plot(x, x + 6, linestyle='-.') # 点划线
  9. plt.plot(x, x + 7, linestyle=':'); # 实点线

如果你想用一种更简洁的方式,则可以将 linestyle 和 color 编码组合起来,作为 plt.plot() 函数的一个非关键字参数使用:

  1. plt.plot(x, x + 0, '-g') # 绿色实线
  2. plt.plot(x, x + 1, '--c') # 青色虚线
  3. plt.plot(x, x + 2, '-.k') # 黑色点划线
  4. plt.plot(x, x + 3, ':r'); # 红色实点线

调整图形: 坐标轴上下限
虽然 Matplotlib 会自动为你的图形选择最合适的坐标轴上下限,但是有时自定义坐标轴上
下限可能会更好。调整坐标轴上下限最基础的方法是 plt.xlim() 和 plt.ylim() :

  1. plt.plot(x, np.sin(x))
  2. plt.xlim(-1, 11)
  3. plt.ylim(-1.5, 1.5)

还有一个方法是 plt.axis()(注意不要搞混 axes 和 axis)。通过传入 [xmin, xmax,ymin, ymax] 对应的值, plt.axis() 方法可以让你用一行代码设置 x 和 y 的限值:

  1. plt.plot(x, np.sin(x))
  2. plt.axis([-1, 11, -1.5, 1.5])

设置图形标签
图形标题与坐标轴标题是最简单的标签,快速设置方法如下所示(如图 4-17 所示):

  1. plt.plot(x, np.sin(x))
  2. plt.title("A Sine Curve")
  3. plt.xlabel("x")
  4. plt.ylabel("sin(x)")

在单个坐标轴上显示多条线时,创建图例显示每条线是很有效的方法。 Matplotlib 内置了一个简单快速的方法,可以用来创建图例,那就是plt.legend()。设置图例最简单的方法是在 plt.plot 函数中用 label 参数为每条线设置一个标签。

  1. plt.plot(x, np.sin(x), '-g', label='sin(x)')
  2. plt.plot(x, np.cos(x), ':b', label='cos(x)')
  3. plt.legend()

plt.legend() 函数会将每条线的标签与其风格、颜色自动匹配。


简易散点图

另一种常用的图形是简易散点图(scatter plot),与线形图类似。这种图形不再由线段连接,
而是由独立的点、圆圈或其他形状构成。

用plt.plot画散点图
上一节介绍了用 plt.plot/ax.plot 画线形图的方法,现在用这些函数来画散点图:

  1. x = np.linspace(0, 10, 30)
  2. y = np.sin(x)
  3. plt.plot(x, y, 'o', color='black')

函数的第三个参数是一个字符,表示图形符号的类型。与你之前用 ‘-‘ 和 ‘—‘ 设置线条属性类似,对应的图形标记也有缩写形式:’o’, ‘.’, ‘,’, ‘x’, ‘+’, ‘v’, ‘^’, ‘<’, ‘>’, ‘s’, ‘d’ 。
这些代码还可以与线条、颜色代码组合起来,画出一条连接散点的线:

  1. plt.plot(x, y, '-ok'); # 直线(-)、圆圈(o)、黑色(k)

用plt.scatter画散点图
另一个可以创建散点图的函数是 plt.scatter。它的功能非常强大,其用法与 plt.plot 函数类似:

  1. plt.scatter(x, y, marker='o')

plt.scatter 与 plt.plot 的主要差别在于,前者在创建散点图时具有更高的灵活性,可以单独控制每个散点与数据匹配,也可以让每个散点具有不同的属性(大小、表面颜色、边框颜色等)。