就像之前用 np 作为 NumPy 的简写形式、 pd 作为 Pandas 的简写形式一样,我们也可以在
导入 Matplotlib 时用一些它常用的简写形式:
import matplotlib.pyplot as plt
简易线形图
在所有图形中,最简单的应该就是线性方程 y = f (x) 的可视化了。
x = np.linspace(0, 10, 1000)plt.plot(x, np.sin(x))plt.show()
调整图形: 线条的颜色与风格
通常对图形的第一次调整是调整它线条的颜色与风格。 plt.plot() 函数可以通过相应的参数设置颜色与风格。要修改颜色,就可以使用 color 参数,它支持各种颜色值的字符串。
plt.plot(x, np.sin(x - 0), color='blue') # 标准颜色名称plt.plot(x, np.sin(x - 1), color='g') # 缩写颜色代码(rgbcmyk)
如果不指定颜色, Matplotlib 就会为多条线自动循环使用一组默认的颜色。
与之类似,你也可以用 linestyle 调整线条的风格:
plt.plot(x, x + 0, linestyle='solid')plt.plot(x, x + 1, linestyle='dashed')plt.plot(x, x + 2, linestyle='dashdot')plt.plot(x, x + 3, linestyle='dotted')# 你可以用下面的简写形式plt.plot(x, x + 4, linestyle='-') # 实线plt.plot(x, x + 5, linestyle='--') # 虚线plt.plot(x, x + 6, linestyle='-.') # 点划线plt.plot(x, x + 7, linestyle=':'); # 实点线
如果你想用一种更简洁的方式,则可以将 linestyle 和 color 编码组合起来,作为 plt.plot() 函数的一个非关键字参数使用:
plt.plot(x, x + 0, '-g') # 绿色实线plt.plot(x, x + 1, '--c') # 青色虚线plt.plot(x, x + 2, '-.k') # 黑色点划线plt.plot(x, x + 3, ':r'); # 红色实点线
调整图形: 坐标轴上下限
虽然 Matplotlib 会自动为你的图形选择最合适的坐标轴上下限,但是有时自定义坐标轴上
下限可能会更好。调整坐标轴上下限最基础的方法是 plt.xlim() 和 plt.ylim() :
plt.plot(x, np.sin(x))plt.xlim(-1, 11)plt.ylim(-1.5, 1.5)
还有一个方法是 plt.axis()(注意不要搞混 axes 和 axis)。通过传入 [xmin, xmax,ymin, ymax] 对应的值, plt.axis() 方法可以让你用一行代码设置 x 和 y 的限值:
plt.plot(x, np.sin(x))plt.axis([-1, 11, -1.5, 1.5])
设置图形标签
图形标题与坐标轴标题是最简单的标签,快速设置方法如下所示(如图 4-17 所示):
plt.plot(x, np.sin(x))plt.title("A Sine Curve")plt.xlabel("x")plt.ylabel("sin(x)")
在单个坐标轴上显示多条线时,创建图例显示每条线是很有效的方法。 Matplotlib 内置了一个简单快速的方法,可以用来创建图例,那就是plt.legend()。设置图例最简单的方法是在 plt.plot 函数中用 label 参数为每条线设置一个标签。
plt.plot(x, np.sin(x), '-g', label='sin(x)')plt.plot(x, np.cos(x), ':b', label='cos(x)')plt.legend()
plt.legend() 函数会将每条线的标签与其风格、颜色自动匹配。
简易散点图
另一种常用的图形是简易散点图(scatter plot),与线形图类似。这种图形不再由线段连接,
而是由独立的点、圆圈或其他形状构成。
用plt.plot画散点图
上一节介绍了用 plt.plot/ax.plot 画线形图的方法,现在用这些函数来画散点图:
x = np.linspace(0, 10, 30)y = np.sin(x)plt.plot(x, y, 'o', color='black')
函数的第三个参数是一个字符,表示图形符号的类型。与你之前用 ‘-‘ 和 ‘—‘ 设置线条属性类似,对应的图形标记也有缩写形式:’o’, ‘.’, ‘,’, ‘x’, ‘+’, ‘v’, ‘^’, ‘<’, ‘>’, ‘s’, ‘d’ 。
这些代码还可以与线条、颜色代码组合起来,画出一条连接散点的线:
plt.plot(x, y, '-ok'); # 直线(-)、圆圈(o)、黑色(k)
用plt.scatter画散点图
另一个可以创建散点图的函数是 plt.scatter。它的功能非常强大,其用法与 plt.plot 函数类似:
plt.scatter(x, y, marker='o')
plt.scatter 与 plt.plot 的主要差别在于,前者在创建散点图时具有更高的灵活性,可以单独控制每个散点与数据匹配,也可以让每个散点具有不同的属性(大小、表面颜色、边框颜色等)。
