[英]Drawing line through two points, instead of between (on a log scale, but still a straight line)
我目前正在開發一個 Python API,負責繪制在使用 Angular 的前端應用程序中制作的圖表和切線。 在此應用程序中,可以移動點來調整垂直於曲線的直線。
當用戶認為這是應該的方式時,可以使用 matplotlib 導出圖表。
當僅使用以下代碼在點之間繪制時:
x_values = [tangent.point1.x, tangent.point2.x]
y_values = [tangent.point1.y, tangent.point2.y]
plt.plot(x_values, y_values, scalex=False, scaley=False)
盡管我希望線條一直延伸到繪圖的邊界,因為如果用戶設置的兩個點本身不相交。
我試過將這兩個點轉換成一個方程,並從那里計算出兩個點但沒有運氣(直線)。 還嘗試使用 np.linspace(xMin, xMax, 100) 產生指數曲線。
問題/TLDR:有沒有辦法通過點畫線(不確定因為我在 plt.plot 中將 scalex 和 scaley 設置為 false)
編輯:
我在另一篇文章中遇到過 ax.axline(p1, p2)。 這繪制了一條無限線,但沒有 scalex 和 scaley 屬性。 這篇文章還提到了將 plt.axes() 存儲在變量中並在繪圖后將它們應用為 xlim 和 ylim。 這導致線條不可見??? 我的意思是將這些點打印到控制台。 我可以看到這條線應該在圖中的什么位置,只是不在那里。
編輯 2:我很愚蠢,axline 中的 p1 是 p1.x 和 p2.x 而不是 p1.x 和 p1.y。 這通過不越界並再次可見來解決。
要繪制無限線,可以使用以下方法之一(也可以使用其他選項)
plt.axlines((x1,y1), (x2,y2))
ax.axlines((x1, y1),(x2, y2))
將兩個點都放在邊界內會將線延伸到邊界框的邊緣。
如果點在邊界框之外,邊界框將相應地縮放以適應框中的指定點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.