0
我有這個簡單的代碼:如何獲得matplotlib物理(沒有數據)的規模
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.patches import Ellipse
PlotFileName="test.pdf"
pdf = PdfPages(PlotFileName)
fig=plt.figure(1)
ax1=fig.add_subplot(111)
plt.xlim([0,10])
plt.ylim([0,10])
ax1.plot([0,10],[0,10])
e=0.0
theta=0
maj_ax=2
min_ax=maj_ax*np.sqrt(1-e**2)
const=1
ax1.add_artist(Ellipse((5, 5), maj_ax, const*min_ax, angle=theta, facecolor="green", edgecolor="black",zorder=2, alpha=0.5))
plt.grid()
pdf.savefig(fig)
pdf.close()
plt.close()
下面是它的外觀:
正如你從代碼中看到,它應該是一個圓,但它不是!我已經將問題縮小到了第16行的const
這個術語。我不想使用ax1.axis("equal")
,因爲我的數據在垂直和水平方向上沒有相同的比例。任何人都可以告訴我,我可以問matplotlib來告訴我它使用的是什麼樣的寬高比,所以我可以正確設置const
的術語,所以我最終有一個圓圈?
換句話說,我想知道水平軸與垂直軸「物理」長度的比例(例如,打印出的是什麼)。
我真的很感激任何建議,提前感謝
正在使用'F = pylab.gcf()'和'DefSize = F.get_size_inches()'的最佳方式?以這種方式:寬高比爲:'DefSize [0]/DefSize [1]'。 – makhlaghi