如何绘制看起来像散点图的零一二维矩阵?

How to plot a zero-one 2d matrix that will look like a scatter?

可能是一个奇怪的问题,但我想知道是否可以用散点图替换由 1 和 0 组成的二维矩阵,黑点,其中所有的都是 1,但没有 0:

不幸的是,我没有最好的可重现答案,但我有一个由 0 和 1 组成的二维数组(大小 275 和 357):

我希望基本上覆盖由小黑点组成的区域(假设以散点图的形式,稍后将覆盖在另一个等高线图上):

左边是原始等高线图,右边是我要实现的想法(图片更多的黑点就在由1组成的区域):

我试着在这里制作一个可复制的数组:

#array of ones and zeros 
array = np.array(([0,0,0,0,0,0,1,1,0,0,0,1,1,1], [0,1,0,0,0,1,0,0,0,0,0,1,0,1]))

plt.pcolormesh(array)

我尝试以此为例并将其应用于二维数组,但出现了一些错误?

# as an example, borrowed from: 
X=[[0,3,4,0,1,1],
    [0,0,0,5,1,1],
    [6,7,0,8,1,1],
    [3,6,1,5,6,1]]

Y=[12,15,11,10]

x_arr = np.array(X)
y = np.array(Y)

fig, ax = plt.subplots()

#colors=list('bgrcmykw')

for i, x in enumerate(x_arr.T):
    ax.scatter(x,y, c='k',s=5)

plt.show()

我的目标是基本上将这个由 1 和 0 组成的二维矩阵转换为散点图或某种图形,其中 1 由黑点组成,而 0 什么也没有。这稍后将覆盖在另一个等高线图上。我该如何将它们设置为由黑点组成的散点图?

这是我会做的。我没有绘制所有点以减少创建图形的计算需求。如果你有很多要绘制的点,你可能想这样做。无论哪种方式,您都可以根据需要进行更改。

import numpy as np
from matplotlib import pyplot as plt
np.random.seed(0)
mask = np.random.randint(0, 2, (20, 20))
ys, xs = np.where(mask.astype(bool))

plt.imshow(mask)
plt.scatter(xs[::2], ys[::2])

输出: