我一直在為這個問題苦苦掙扎一段時間。我只是想在顯示世界中轉換我的資料,執行一些操作,然后轉換回世界坐標。聽起來,簡單,根據檔案應該如下完成:
fig, ax = plt.subplots(figsize=(5, 5))
ax.plot([1,2], [1,2], "or")
ax.set_xlim((0, 5))
ax.set_ylim((0, 5))
ax.set_axis_off()
p1 = [0, 0]
p1x, p1y = ax.transData.transform(p1)
print(f"p1x={p1x:.3f}, p1y={p1y:.3f}")
這導致p1x=125.000, p1y=110.000
- 問題1:為什么這些坐標在所謂的正方形影像中不相等?
- 問題1:為什么這些坐標不為0?這個偏移量是從哪里來的?
uj5u.com熱心網友回復:
那是因為你的情節周圍的邊緣。您列印的值是視窗內原點的坐標。
您可以使用以下方法洗掉邊距plt.subplots_adjust(left=0, right=1, top=1, bottom=0):
fig, ax = plt.subplots(figsize=(5, 5))
ax.plot([1,2], [1,2], "or")
ax.set_xlim((0, 5))
ax.set_ylim((0, 5))
ax.set_axis_off()
plt.subplots_adjust(left=0, right=1, top=1, bottom=0)
p1 = [0, 0]
p1x, p1y = ax.transData.transform(p1)
print(f"p1x={p1x:.3f}, p1y={p1y:.3f}")
輸出:
p1x=0.000, p1y=0.000
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/468459.html
標籤:Python matplotlib
下一篇:Sympy圖顯示y軸的錯誤計算
