所以我有这个矩阵,定义如下:
for row in range (0,squareSize):
for col in range (0,squareSize):
if new_matrix[row][col]==1:
new_matrix[row][col]=color_matrix[row][col] #gradient given by values in color_matrix
if new_matrix[row][col]==2:
new_matrix[row][col]=150 #color red
if new_matrix[row][col]==0:
new_matrix[row][col]=100 #color purple
SquareSize为185,零为条目的是圆内的点,条目为2是方形内但在圆外。 它们都映射到不同的颜色,其余颜色根据颜色渐变映射:
cmap = mpl.cm.hsv
使用以下方式绘制后:
plt.matshow(new_matrix, interpolation='nearest',cmap=cmap)
但是,我希望圆圈是白色的...这不是渐变颜色的一部分:(我该怎么做?
答案 0 :(得分:1)
您可以将要显示为白色的值设置为NaN
。这将阻止它们被绘制,使得在那些区域中显示背景颜色。默认情况下背景为白色,因此它们会以白色显示。
import matplotlib.pyplot as plt
import numpy as np
x,y=np.meshgrid(np.arange(185),np.arange(185))
data = np.exp(-((x-185//2)**2+(y-185//2)**2)/60.**2)
data[(x-185//2)**2+(y-185//2)**2 > 80**2 ] = np.nan
plt.imshow(data, cmap=plt.cm.hsv)
plt.colorbar()
plt.show()