5

我有一个数组切片:

array([1.0, 2.0, 3.0, None, 4.0, None, 5.0, None, 6.0, None], dtype=object)

绘制时看起来像这

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

plt.plot(x, array, 'ro--')

其中 x 是一个 numpy 数组。

4

1 回答 1

9

这是正确的行为,mpl尝试连接相邻点。如果您的点的nan两边都有 a,则没有有效的方法可以将它们连接到任何东西。

如果你想nan在绘图时忽略你的 s ,然后把它们去掉

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

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

此外,使用影响类(如数组)或通用函数的变量名(无论是在 Python 解析方面还是在语义方面)是非常糟糕的做法。

于 2013-08-25T16:09:21.073 回答