所以我有这个矩阵,它的定义如下:
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)
但是,我希望圆圈是白色的......这不是渐变颜色的一部分:(我该怎么做?
您可以将那些想要显示为白色的值设置为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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句