2017-08-11 62 views
-1

我正在嘗試使用plt.subplots來繪製多個熱圖。我發現的一個例子如下:如果我評論以下兩行(在上面的例子中完成)Matplotlib:如何爲每個子區域添加xlabel,標題

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' 

我該如何使它正確?

謝謝大家的幫助!

回答

2

當使用matplotlib面向對象的接口時,使用的正確命令是ax.set_xlabelax.set_ylabel

(將這些與狀態機界面的plt.xlabel等進行比較)。

同樣地,設置一個標題,你需要ax.set_title

你可以看到所有爲axes例如這裏可用的方法:

http://matplotlib.org/api/axes_api.html#axis-labels-title-and-legend

相關問題