如何在交点处绘制垂直线

时间:2018-09-12 08:09:09

标签: python matplotlib

在以下代码中,我使用axhline命令沿x轴绘制一条水平线。现在,我想在两条线已经交叉的点处绘制一条垂直线。我无法使用axvline,因为我不知道交集的值。如果是axhline,则以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 :(得分:0)

这里是找到连接第三点和第四点的直线方程的一种方法。这不是一般的解决方案,而是针对您的特定问题和数据集量身定制的。

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