1
私はimshow(ヒートマップ)サブプロットのコレクションを横並びに並べて並べて表示しようとしています。私は予備として、2つの罰金を表示し、問題を経験してテストしています。以下Matplotlib - imshow subsplots overlapping
を参照してくださいコード:それはちょうどplt.show前plt.tight_layoutを()()を使用したとき、私は次のエラーを取得することは注目に値する
axes = []
fig = plt.figure()#figsize=(10,5))
idx = 0
for symbol in ['EURUSD','GBPUSD']:
df = get_data_period_symbol('1h', symbol)
ranges_df = ranges(df)
# Define x and y as the length of columns and indices for use in setting
# x and y ticks
x, y = len(ranges_df.columns.values), len(ranges_df.index.values)
axes.append(fig.add_subplot(1, idx+1, 1))
# Get axes from imshow
axes[idx].imshow(ranges_df, interpolation='nearest', cmap='Oranges', aspect='auto')
# Set values for x/y ticks/labels
axes[idx].set_xticks(np.linspace(0, x-1, x))
axes[idx].set_xticklabels(ranges_df.columns)
axes[idx].set_yticks(np.linspace(0, y-1, y))
axes[idx].set_yticklabels(ranges_df.index)
# Hide grid lines
axes[idx].grid('off')
# Push x axis to top instead of bottom
axes[idx].xaxis.tick_top()
axes[idx].autoscale(False)
for i, j in product(range(y), range(x)):
_ = axes[idx].text(j, i, '{0:.0f}'.format(ranges_df.iloc[i, j]),
size='small', ha='center', va='center')
idx += 1
plt.show()
は
UserWarning: tight_layout : falling back to Agg renderer
上記のコードは生成します以下の画像:
プロット範囲は1〜12(x軸上の月)、y軸上の2001〜2015です。右のプロットは、左のプロットと同じ場所で開始されたように見えますが、次に右に伸びます。私はちょうどそれらが快適に座ってほしい!
このような全体的な意図は、これらの多くを1つの図にまとめることです。これは、いったんこれをクラックさせると、行/列で動的に行うことができます。
、感謝:
さておき、この問題から、あなたはこのような「pythonize」あなたのコードの自動インデックスによってビットをにしたい場合があります。また、自動インデックス作成は素敵なタッチであり、明らかにベストプラクティスです。 – cardycakes