如何限制负数字段中的垂直线范围

问题描述 投票:0回答:1

我在 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

下图是代码的结果。 enter image description here

我认为将

plt.axvline
ymax
一起使用会使线停止在 y 值处,但它使垂直线仅上升一点。我想要的是下面的图片。 enter image description here

我该如何修复它?

python numpy matplotlib
1个回答
0
投票

你可以这样做:

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
© www.soinside.com 2019 - 2024. All rights reserved.