Python 使用numpy遮罩阵列打印

Python 使用numpy遮罩阵列打印,python,numpy,matplotlib,Python,Numpy,Matplotlib,为什么matplotlib/numpy不使用直线打印未遮罩的点?此问题仅适用于以直线打印。分散或点绘制工作正常 import numpy as np import matplotlib.pyplot as plt x = np.ma.array([0, 1, 2, 3, 4]) x[[1, 3]] = np.ma.masked # issue is only when its set this way; but this is recommended in the docs # x = np

为什么matplotlib/numpy不使用直线打印未遮罩的点?此问题仅适用于以直线打印。分散或点绘制工作正常

import numpy as np
import matplotlib.pyplot as plt

x = np.ma.array([0, 1, 2, 3, 4])

x[[1, 3]] = np.ma.masked # issue is only when its set this way; but this is recommended in the docs
# x = np.ma.masked_where(x < 3) # this works fine for all plotting

plt.plot(x) # this shows nothing, but the axes are set correctly
plt.show()

plt.plot(x, "o") # this shows the points
plt.show()
将numpy导入为np
将matplotlib.pyplot作为plt导入
x=np.ma.array([0,1,2,3,4])
x[[1,3]]=np.ma.masked#问题仅当其设置为这种方式时才出现;但这在文档中是推荐的
#x=np.ma.masked_,其中(x<3)#这适用于所有绘图
plt.plot(x)#这没有显示任何内容,但轴设置正确
plt.show()
plt.plot(x,“o”)#这显示了点
plt.show()

请确保所有内容都是np。我感谢您通过谷歌搜索答案。但是,我之前已经这样做了,并且找到了相同的帖子。你会注意到这与我的问题无关,有几个原因。1) 掩蔽法掩蔽的方法。我明确声明使用np.ma.masked_*方法可以很好地进行绘图。我不是问那些。2) 我明确提到散点图并不是你链接到的帖子只处理散点图的问题。请运行我的代码,在回复之前检查不同的情况。我已经在谷歌上搜索过,并且已经测试过多个案例。我更感兴趣的是为什么,或者是否有一种解决方法,可以保留一个遮罩数组,以便使用中实际推荐的符号绘制线图,我想这个问题太小了,在什么地方都找不到。如果每秒遮罩一个点,则每个线段的两个点中的一个点将被遮罩。因为你不能在一个点和一个点之间画一条线,所以根本就没有画线。啊,所以它的行为就像我预期的那样,我的测试只是有缺陷。Ooof。我甚至没有注意到这样一个事实:我正在删除所有可以连接的点。就我而言,这是一个糟糕的例子。对于任何其他人来说,问题在于我在示例中选择删除的点。Matplotlib绘制遮罩点与绘制np点完全相同。注意