matplotlibのアノテーションを無視するtight_layout()
関数を使用したいと思います。例として、これはtight_layout
とプロットである:Matplotlibs:サイズ変更のためのアノテーションを避ける図
fig = plt.figure()
fig.patch.set_facecolor('grey')
ax1 = plt.subplot(221)
ax2 = plt.subplot(223)
ax3 = plt.subplot(122)
def example_plot(ax, fontsize=12):
ax.plot([1, 2])
ax.locator_params(nbins=3)
ax.set_xlabel('x-label', fontsize=fontsize)
ax.set_ylabel('y-label', fontsize=fontsize)
ax.set_title('Title', fontsize=fontsize)
example_plot(ax1)
example_plot(ax2)
example_plot(ax3)
plt.tight_layout()
plt.annotate('a)', xy=(0, 1), xycoords='figure fraction', ha='left', va='top')
plt.annotate('b)', xy=(0, 0.5), xycoords='figure fraction', ha='left', va='top')
plt.annotate('c)', xy=(0.5, 1), xycoords='figure fraction', ha='left', va='top')
図は、(注釈のためのスペースを作るために(左と上に)サイズを大きくしているように見えますイーラーベルは端まで完全には行きません)。しかし、注釈を再配置せずに図の上に追加したいと思います。どういうわけかtight_layout
でこれらの注釈を無視できますか?
編集:それは実際にそれが判明tight_layout
の問題ではありません。でもtight_layout
を呼び出すことなく、プロットのこのサイズ変更が行われます。
をしかし、私は別のコンピュータ上で同じことをしようとした場合、予想される動作(ノーサイズ変更)が発生します。どちらのシステムもmatplotlib 2.0.0とipythonを実行します。
あなたが何を求めているのかは不明です。アノテーションの有無にかかわらず、数字はまったく同じです。これは実際にはコードを見ても明らかですが、 'tight_layout'は注釈が追加される前**と呼ばれているので、そこにいるかどうかは分かりません。 – ImportanceOfBeingErnest
あなたのコメントは、「tight_layout」は問題ではないことを認識させました。また、図がなくてもサイズが変更されます。紛らわしいことに、matplotlibの同じバージョンを使用している別のコンピュータでは、あなたが記述した動作が得られます。 – erik