我有下面的代碼,我需要找到 axline 和 axvline 之間交點的數值,我不知道如何以簡單的方式解決這個問題,有人知道如何解決嗎?提前無限感謝!:)
!pip install matplotlib==3.4
%matplotlib inline
import matplotlib.pyplot as plt
x = [0,2,4,6,8,10,12,14.3,16.2,18,20.5,22.2,25.1,
26.1,28,30,33.3,34.5,36,38,40]
y = [13.4,23.7,35.1,48.3,62.7,76.4,91.3,106.5,119.6,131.3,
146.9,157.3,173.8,180.1,189.4,199.5,215.2,220.6,227,234.7,242.2]
slope = (131.3-119.6)/(18-16.2)
plt.figure(figsize=(10, 5))
plt.axline((16.2,119.6), slope = slope, linestyle = '--', color = 'r')
plt.grid()
plt.minorticks_on()
plt.axvline(30,linestyle = '--', color = 'black')
plt.plot(x,y, linewidth = 2.5)
plt.show()
繪圖結果
uj5u.com熱心網友回復:
首先,你需要找到斜線的方程,y=slope*x q這很容易做到,因為你知道斜率和直線的一點。
接下來求解方程組:y=slope*x q, x=x0(垂直線)。
在這里,我用綠色標記繪制了交點。
import matplotlib.pyplot as plt
x = [0,2,4,6,8,10,12,14.3,16.2,18,20.5,22.2,25.1,
26.1,28,30,33.3,34.5,36,38,40]
y = [13.4,23.7,35.1,48.3,62.7,76.4,91.3,106.5,119.6,131.3,
146.9,157.3,173.8,180.1,189.4,199.5,215.2,220.6,227,234.7,242.2]
slope = (131.3-119.6)/(18-16.2)
plt.figure(figsize=(10, 5))
point_1 = (16.2, 119.6)
q = point_1[1] - slope * point_1[0]
x2 = 30
point_2 = (x2, slope * x2 q)
plt.axline(point_1, slope = slope, linestyle = '--', color = 'r')
plt.grid()
plt.minorticks_on()
plt.axvline(x2,linestyle = '--', color = 'black')
plt.plot(x,y, linewidth = 2.5)
plt.scatter(*point_2, color="g", s=100)
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/468454.html
標籤:Python matplotlib 路口 轴心线
上一篇:在迭代散點圖旁邊繪制自定義顏色圖
