Pylab 在数据中有 nan 的地方插入换行符。我怎样才能获得连续的线条。我认为 matlab 会自动执行此操作。
示例:
x = linspace(0,1,10)
y = rand(10,2)
y[5:8,1] = nan
plot(x,y,'.-')
我希望对 y[:,1]
进行插值,但不希望对 y[:,0]
进行插值,因为没有缺失点。
最佳答案
选择没有nan
的行
from pylab import isnan
boolind = ~isnan(y).any(1)
然后做
plot(x[boolind], y[boolind])
如果您想要线性插值中的值来替换该 nan
,您只需记录该 nan
的位置并使用相邻点进行插值,但我认为出于绘图目的,只需消除 nan 数据点就足够了 - 代码无论如何都会为您进行线性插值。
顺便说一句:大概你的 y = rand((10, 50))
应该是 y = rand(10, 50)
,尽管我不确定你为什么想要相对于一维绘制二维数组。
编辑
对于您的特定问题,您可以简单地分别绘制 y
的两列
from pylab import *
x = linspace(0,1,10)
y = rand(10,2)
y[5:8,1] = nan
boolind = ~isnan(y)
plot(x[boolind[:,0]],y[boolind[:,0], 0],'.-')
plot(x[boolind[:,1]],y[boolind[:,1], 1],'.-')
show()
关于python - 如何在 pylab 中的 nan 上插入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660144/