我正在尝试使用绘制多个热图plt.subplots。我发现一个示例如下:
plt.subplots
import numpy as np import matplotlib.pyplot as plt # Generate some data that where each slice has a different range # (The overall range is from 0 to 2) data = np.random.random((4,10,10)) data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None] # Plot each slice as an independent subplot fig, axes = plt.subplots(nrows=1, ncols=4,figsize=(12,3)) i=0 for dat, ax in zip(data, axes.flat): # The vmin and vmax arguments specify the color limits im = ax.imshow(dat, vmin=0, vmax=2,cmap='Reds') # ax.xlabel(str(i)) # ax.ylabel(str(i)) i += 1 # Make an axis for the colorbar on the right side cax = fig.add_axes([0.95, 0.155, 0.03, 0.67]) fig.colorbar(im, cax=cax) figtype = 'jpg' fig.savefig('aaa.jpg',format = figtype,bbox_inches='tight') fig.tight_layout()
如果我注释以下两行,则代码成功(在上面的示例中完成):
ax.xlabel(str(i)) ax.ylabel(str(i))
如果使用这两行,则会收到错误消息:
AttributeError: 'AxesSubplot' object has no attribute 'xlabel'
我该如何纠正?
谢谢大家的帮助!!!
使用matplotlib面向对象的接口时,要使用的正确命令是ax.set_xlabel和ax.set_ylabel。
ax.set_xlabel
ax.set_ylabel
(plt.xlabel对于状态机接口,将其与等比较)。
plt.xlabel
同样,要设置标题,您需要 ax.set_title
ax.set_title
您可以axes在api文档中(此处)查看实例的所有可用方法。
axes