在NaN之后,matplotlib没有继续行

use*_*183 4 python numpy matplotlib

我有一个数组切片:

array([1.0, 2.0, 3.0, None, 4.0, None, 5.0, None, 6.0, None], dtype=object)
Run Code Online (Sandbox Code Playgroud)

在绘制时看起来像 这个

在None值之后如何让点线/连接线继续?我尝试使用astype将数据类型从对象更改为浮点数,并将None替换为nan的但是没有区别,我也尝试使用np.where(np.isnan())等的掩码数组但是它没有制作差异.我的绘图命令非常简单:

plt.plot(x, array, 'ro--')
Run Code Online (Sandbox Code Playgroud)

其中x是一个numpy数组.

tac*_*ell 8

这是正确的行为,mpl尝试连接相邻的点.如果你的nan两边都有一个点,没有有效的方法将它们连接到任何东西.

如果你想nan在绘图时忽略你的s,那么将它们剥离出来

ind = ~np.isnan(np.asarray(data.astype(float)))
plt.plot(np.asarray(x)[ind], np.asarray(data)[ind], 'ro--')
Run Code Online (Sandbox Code Playgroud)

所有这些asarray只是为了确保示例能够正常工作,与之相同astype

另外,使用阴影(在python解析和语义方面)类(如数组)或常用函数的变量名称实际上是不好的做法.