目录
9.1.2 颜色color、标记marker和线类型linestyle
第9章 绘图与可视化
9.1 简明matplotlib API入门
导包:
import matplotlib.pyplot as plt
9.1.1 图片与子图
matplotlib所绘制的图位于图片(Figure)对象中。
可以使用plt.figure生成一个新的图片:
不能使用空白的图片进行绘图。需要使用add_subplot创建一个或多个子图(subplot):
ax1 = fig.add_subplot(2,2,1)
上面代码的意思是图片应该是2×2的(最多四个图形),并且我们选择了四个图形中的第一个(序号从1开始)。
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
效果如下,得到三个子图的空白图片:
使用Jupyter notebook时有个细节需要注意,在每个单元格运行后,图表被重置,因此对于更复杂的图表,你必须将所有的绘图命令放在单个的notebook单元格中。
如下所示:
fig.add_subplot返回的对象是Axes Subplot对象,使用这些对象你可以直接在其他空白的子图上调用对象的实例方法进行绘图:
matplotlib包含了一个便捷方法plt.subplots,它创建一个新的图片,然后返回包含了已生成子图对象的NumPy数组:
pyplot.subplots选项:
调整子图周围的间距
默认情况下,matplotlib会在子图的外部和子图之间留出一定的间距。
可以使用图对象上的subplots_adjust方法更改间距,也可以用作顶层函数:
wspace和hspace分别控制的是图片的宽度和高度百分比,以用作子图间的间距。
如图将子图之间的距离变为0:
9.1.2 颜色color、标记marker和线类型linestyle
matplotlib的主函数plot接收带有x和y轴的数组以及一些可选的字符串缩写参数来指明颜色和线类型。
例如,字符串形式,要用绿色破折号绘制x对y的线,你需要执行:
ax.plot(x,y,'g--)
同样的图表可以使用更为显式的方式来表达:
ax.plot(x,y,linestyle='--',color='g')
折线图还可以有标记用来凸显实际的的数据点。
由于matplotlib创建了一个连续性折线图,插入点之间有时并不清除点在哪。
标记可以是样式字符串的一部分,样式字符串中线类型、标记类型必须跟在颜色后面:
显式写法