Как нарисовать вертикальную линию в точке пересечения - PullRequest
0 голосов
/ 12 сентября 2018

В следующем коде я использую команду axhline, чтобы нарисовать горизонтальную линию вдоль оси x.Теперь я хочу нарисовать вертикальную линию в точке, где две линии уже пересеклись.Я не могу использовать axvline, потому что я не знаю значение пересечения.В случае оси я рисую эту линию с вероятностью 50%.

x=[1, 1.5, 2, 5, 5.5, 6 ]
y=[1, 1, 0.89189189, 0.01086957, 0.01190476, 0]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y,marker='o')
plt.axhline(0.5, color='r')

1 Ответ

0 голосов
/ 12 сентября 2018

Вот один из способов сделать это, найдя уравнение прямой, соединяющей 3-ю и 4-ю точки.Это не общее решение, но специально разработанное для вашей конкретной проблемы и набора данных.

x=[1, 1.5, 2, 5, 5.5, 6 ]
y=[1, 1, 0.89189189, 0.01086957, 0.01190476, 0]

# Compute the equation of the line connecting 3rd and 4th point
m = (y[3]-y[2])/(x[3]-x[2]) # Slope
c = y[3]-m*x[3] # y-Intercept
x_inter = (0.5-c)/m # Desired intersection point

# Your plotting commands here
plt.axvline(x_inter, color='g')

Вывод

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...