我需要绘制一个通过最小x值数据点的曲线图。下面的代码是一个类似于我正在处理的数据的工作示例。请只使用numpy
和matplotlib
,并继续使用plt.subplots()
方法。
import numpy as np
import pylab as plt
y = np.random.randint(1,20,50)
fig, ax = plt.subplots()
ax.plot(y, '.')
ax.grid(alpha=0.5)
plt.show()
上面的代码生成了以下绘图:
我需要一个“包围”点的最左边界的图,如下所示:
有什么想法吗?
2条答案
按热度按时间7lrncoxx1#
您需要定义最左边界所在的下限,或者您可以在y轴上对数据进行分组,并在每个分组中找到x值最小的点。我将采用前一种方法并执行以下操作(使用插值器函数):
这给出:
如果你想要一条更弯曲的线,你可以把
interp1d
中的"linear"
改变为,例如,"cubic"
,但是这并不能保证它不包含边界"内部"的点,或者偏离想象的边界很远。获得一点曲率但不可能包括边界"内部"点的方法是在进行线性插值之前转换到对数空间,然后再转换回来进行绘图,例如:
其给出:
其公认地(在这种情况下)与原始线性内插没有太大不同。
hpcdzsge2#
假设y值有些离散,则可以执行以下操作
这是来自移动的和未经测试的