matplotlib を使用して宇宙船軌道の 2D ビューをプロットしています。この軌道上で、特定のイベントを特定してマークし、これらのイベントと対応する日付を凡例にリストします。図をファイルに保存する前に、軌道プロットを自動ズームします。これにより、凡例がプロットの上に直接印刷されます。私がやりたいことは、オートスケーリングの後、どうにかして凡例の幅を見つけてから、xaxis を拡張して、プロットの右側に凡例用の「スペースを作る」ことです。概念的には、このようなものです。
# ... code that generates my plot up here, then:
ax.autoscale_view()
leg = ax.get_legend()
leg_width = # Somehow get the width of legend in units that I can use to modify my axes
xlims = ax.get_xlim()
ax.set_xlim( [xlims[0], xlims[1] + leg_width] )
fig.savefig('myplot.ps',format='ps')
私が抱えている主な問題は、ax.set_xlim()
「データ」固有の値を取得するのに対し、leg.get_window_extent
レポートはウィンドウ ピクセルで (私が思うに)、キャンバスが描画された後でさえ、どのように凡例を取得できるかわかりません」 width」を上記と同様に使用できるようにします。