2017-08-11 15 views
-1

plt.subplotsを使用して複数のヒートマップをプロットしようとしています。私は(上記の例で行われる)次の2行のコメント場合Matplotlib:各サブプロットにxlabel、titleを追加する方法

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() 

コードが成功した:私は2つの行を使用する場合

ax.xlabel(str(i)) 
ax.ylabel(str(i)) 

を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

関連する問題