基于两个条件(x 和 y 轴)的颜色 numpy 数组

Color numpy array based on two condition (x and y axis)

我必须使用 numpy 数组 x 和 y,我想创建散点图并根据 x y 轴值为点着色,例如,所有 x 值在 0.1-0.2 之间的点,它们的 y 值在 0.4-0.6 之间的所有点都会变成红色。 我尝试通过以下方式进行:

#generate points
num = 1000
x= np.random.rand(1,100)
y= np.random.rand(1,100)

plt.scatter(x, y, s=5, linewidth=0)
plt.show()

#try to color the points based on condition:
col=[(np.where((x<0.2,'r')&(y<0.4,'r','b')))]
plt.scatter(x, y,c=col, s=5, linewidth=0)
plt.show()

>>>
TypeError: unsupported operand type(s) for &: 'tuple' and 'tuple'

我不确定这是最好的方法。 我的最终目标是根据定义的 x 和 y 条件为值着色。

可以使用按位和运算筛选出需要的点-

import numpy as np
import matplotlib.pyplot as plt

num = 1000
x = np.random.rand(1, 100)
y = np.random.rand(1, 100)

plt.scatter(x, y, s=5, linewidth=0)
mask = np.bitwise_and(np.bitwise_and(x < 0.2, x > 0.1), np.bitwise_and(y < 0.6, y > 0.4))
plt.scatter(x[mask], y[mask], c='r', s=5, linewidth=0)
plt.show()