我在 y=0 下面画了一个线性图,现在我希望垂直线 x=0.52 和 x=0.75 到达该图,而不是穿过整个 xy 场。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0.01,.99,99)
y = 5837.23*x - 19500
plt.plot(x, y)
plt.axvline(x=0.52, ymax=-16464.6404) # ymax = y(x) result
plt.axvline(x=0.75, ymax=-15122.0775) # ymax = y(x) result
我认为将
plt.axvline
与 ymax
一起使用会使线停止在 y 值处,但它使垂直线仅上升一点。我想要的是下面的图片。
我该如何修复它?
你可以这样做:
plt.plot(x, y)
ymin, ymax = plt.ylim() # save current plot ylim for reuse
plt.vlines([0.52, 0.75], ymin, ymax=[-16464.6404, -15122.0775]) # from bottom of graph to line values
plt.ylim(ymin, ymax) # reset to original ylim