2017-02-09 12 views
0

私はimshowでカラーマップをプロットしていますが、私は水平に伸びる姿を得ることができません!ストレッチimshow X軸

コード:

ylabels = ['0:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'] 

fig, ax = plt.subplots(figsize=(27, 7)) 

cax1 = ax.imshow(df7, origin='lower', cmap='viridis', interpolation='none', aspect=4) 
ax.set_xticklabels(label, fontsize = 12) 
plt.xticks(np.arange(len(df7.columns))) 

major_ticks = np.arange(0, 24, 3) 
ax.set_yticks(major_ticks) 
ax.set_yticklabels(ylabels, fontsize = 12) 


plt.rcParams['xtick.labelsize'] = 12 
plt.rcParams['ytick.labelsize'] = 12 
fig.autofmt_xdate() 



plt.colorbar(cax1,fraction=0.046, pad=0.04) 




fig.suptitle('November 2016 Normalized Pressure Data $[mbar]$',fontsize=15) 
fig.tight_layout(pad = 1) 

plt.show() 

fig.savefig('Pressure.png', dpi=300) 

私は関数imshowを呼び出すときに "アスペクト" を使用しようとしたが、まだ結果は正方形ピクセルです:

enter image description here

私はX軸を伸ばすことができますどのように図形サイズ全体を埋めるために?

ありがとうございました!

編集:私はaspect='auto'aspect=0.25が、それでも同じ結果を試みた

EDIT#2:

私はax.set_aspect(0.5)tight_layout重複を削除し、それでも図は、画像サイズ

答えて

0

画像のアスペクトを設定aspectキーワード引数の空間全体を充填されていません。 the documentationから:

側面:[「自動」| |スカラー]、オプション、デフォルト:なし
'auto'の場合、イメージのアスペクト比を軸のアスペクト比に合わせて変更します。
と等しい場合はであり、エクステントはなしです。軸のアスペクト比を画像のアスペクト比に合わせて変更します。 extentがNoneでない場合、軸のアスペクト比はエクステントのアスペクト比と一致するように変更されます。
なしの場合は、デフォルトでrc image.aspect valueになります。

だから、アイデアはaspect='auto'の代わりaspect=4用いることであろう。

もちろん、数値を使用してアスペクトを手動で設定することもできます。しかし、X方向のストレッチの場合、アスペクトは1より小さい必要があります。すなわち、aspect=0.25

+0

私も試しましたが(aspect = 'auto'とaspect = 0.25)、動作していません。 ( – ValientProcess

+0

"それはうまくいかないようです"というのは十分な問題の説明ではありません。疑問からあなたのコードについて話しているなら、もちろん 'ax.set_aspect(0.5)'行を削除する必要があります。 imshowと同じ引数、またはimshow引数を削除して、 'ax.set_aspect'のみを使用してください。コードをデバッグするのが簡単になりますので、' tight_layout'を2回実行することも良い考えではありません。 – ImportanceOfBeingErnest

+0

実際には「画像サイズの全領域を満たさない」という意味をよりよく説明する必要があります。 – ImportanceOfBeingErnest