如何在pylab中插入nans上的行?

时间:2012-05-18 21:48:29

标签: python plot matplotlib

Pylab在数据中存在nans的地方插入换行符。我怎样才能获得连续的线条。我认为matlab会自动执行此操作。

示例:

x = linspace(0,1,10)
y = rand(10,2)
y[5:8,1] = nan
plot(x,y,'.-')

我希望y [:,1]插值而不是y [:,0],因为没有丢失点。

1 个答案:

答案 0 :(得分:2)

选择没有nan

的行
from pylab import isnan
boolind = ~isnan(y).any(1)

然后做

plot(x[boolind], y[boolind])

如果您希望线性插值的值替换nan,您只需记录nan的位置并使用相邻点进行插值,但我认为出于绘图目的,只需消除{ {1}}数据点就足够了 - 无论如何,代码都会为你做线性插值。

顺便说一下:大概你的nan应该是y = rand((10, 50)),虽然我不确定你为什么想要对一维绘制2D数组。

修改

对于您的特定问题,您可以简单地分别绘制y = rand(10, 50)的两列

y

enter image description here