python - 如何在 pylab 中的 nan 上插入行?

标签 python plot matplotlib

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()

enter image description here

关于python - 如何在 pylab 中的 nan 上插入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660144/

相关文章:

python - 如何使用 networkx 计算有向图的最低根的总距离

Python 正则表达式 : tokenizing English contractions

python - 将两个图表重叠绘制

基于循环计数器的python matplotlib轴标签下标

python - 如何快速从 pandas df 读取和绘制数组

python - Flask Python 日志记录 : TypeError while logging file path in File

python - 在 docker 中部署一个最小的 flask 应用程序 - 服务器连接问题

matlab - 在左轴上绘制折线图,​​在右轴上绘制条形图

r - 设置整个 ggvis 图的高度和宽度,包括轴和轴标签

python - 从 matplotlib.pyplot 导入 plt ImportError : No module named 'matplotlib'