我已經寫了一個GUI,顯示了一個隧道部分的原理圖和感應解決方案。上面的圖表將其縱橫比設置爲「自動」。下方的地塊將其縱橫比設置爲「相等」(因爲隧道否則會失真)。這些圖有x軸共享。由於sharex和縱橫比相等,Matplotlib設置的軸限制與顯示的限制不匹配
我遇到的問題是下圖的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()
如果您想保持x軸共享,我相信您必須放大底部的座標軸高度,或者接受上部座標圖的限制會發生變化,以及在更改底部座標圖的限制時也會發生變化。 – hooy
我很高興x軸顯示的數據限制超過數據限制,如果它阻止切斷下面的圖中的數據。問題是我無法弄清楚擴展x軸的程度,因爲我沒有計算y軸實際顯示的程度的方法。如果我知道y軸實際顯示的多少,我可以說xlimNew =(yLim/yViewable)* xLimOld。 有沒有一種方法可以確定繪圖視圖的界限而不是繪圖數據的界限? – CrazyArm
您是否嘗試設置'ax.set_ylim([min,max])'(並讓它根據需要更改x軸)? – tacaswell