1

トンネル セクションの概略図と誘導された沈下を示す小さな GUI を作成しました。上のプロットでは、縦横比が「自動」に設定されています。下のプロットでは、縦横比が「等しい」に設定されています (そうしないとトンネルが歪むため)。プロットの x 軸は共有されています。

私が直面している問題は、下のプロットの y 軸にすべてのデータが表示されないことです。下のプロットの y 制限を印刷すると、y 制限は (-20,100) になり、すべてのデータを表示できるようになります。この問題の解決策は x 制限を増やすことですが、下のプロットから出力される y 制限は表示可能な制限 (-2,84) ではないため、プログラムでこれを行う方法がわかりません。

アイデアや修正はありますか?

問題のスクリーンショット

MWE:

import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(2,1,sharex=True)

ax1.plot([-10,0,10,-10],[-1,1,-1,-1])
ax2.plot([-5,-5,5,5,-5],[-10,10,10,-10,-10])
ax2.set_aspect('equal')
print(ax2.get_ylim())
plt.show()
4

1 に答える 1

0

これは少し内臓を掘り下げますが、

w = ax.get_window_extent(None).width
h = ax.get_window_extent(None).height

ax.figure.canvas.renderer画面上の(の代わりに渡す必要がある場合がありますNone)高さと幅を取得する必要があります。

その後、比率がわかり、(xmax-xmin)/(ymax-ymin)それに応じて x 制限を設定できます。

ここでの根本的な問題は、相互に関連する一連の数値があり、それらのサブセットしか指定できないことです。

于 2013-08-29T21:13:52.517 に答える