Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用特定颜色为矩阵着色?_Python_Matplotlib - Fatal编程技术网

Python 如何使用特定颜色为矩阵着色?

Python 如何使用特定颜色为矩阵着色?,python,matplotlib,Python,Matplotlib,这里是我的最小工作示例 arr0 = [] arr1 = [] fig, ax = plt.subplots() provamatrix = np.full((750, 750), -1) arr0 = [random.randint(1,750) for _ in range(100000)] np.random.shuffle(arr0) arr1 = [random.randint(1,750) for _ in range(100000)] np.random.shuffle(arr

这里是我的最小工作示例

arr0 = []
arr1 = []
fig, ax = plt.subplots()

provamatrix =  np.full((750, 750), -1)
arr0 = [random.randint(1,750) for _ in range(100000)]
np.random.shuffle(arr0)
arr1 = [random.randint(1,750) for _ in range(100000)]
np.random.shuffle(arr1)
coordsprova = list(zip(arr0, arr1))
m = 0
for c in coordsprova:
    provamatrix[c] = m
    m += 1
plt.imshow(provamatrix, cmap=plt.cm.Blues)

如何将-1值的像素着色为黑色?

您可以为颜色贴图设置颜色。范围从vmin到vmax。当vmin到vmax没有显式设置(并且使用no)时,它们是从数据中计算出来的

将vmin设置为零,使所有负值处于“低于”。(对于高于vmax的值,也有类似的“过”色概念。)

A可以通过
plt.colorbar(extend='min')
在三角形箭头中显示底色。其他值为“max”、“both”和“none”。相关选项可以将底色显示为矩形(
extendrect=True
),并设置用于扩展的颜色条分数(默认值为5%:
extendfrac=0.05

下面是一些示例代码来说明它是如何工作的。用红色代替黑色来更清楚地说明正在发生的事情。(该代码还尝试将给定代码编写得更具python风格。)

从matplotlib导入pyplot作为plt
将numpy作为np导入
provamatrix=np.full((750750),-1)
coordsprova=np.random.randint(0750,(30000,2))
对于枚举(coordsprova)中的m,(i,j):
provamatrix[i,j]=m
cmap=plt.cm.get_cmap('Blues'))
cmap.set_位于('red')下
plt.imshow(provamatrix,cmap=cmap,vmin=0)
plt.colorbar(extend='min',extendrect=True)
plt.show()