2017-12-03 182 views
0

因此,我已這個矩陣,其被定義如下:設定背景色爲白色包含白色

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) 

這是輸出:enter image description here

不過,我想圈是白色的......這不是漸變顏色的部分:(我怎麼能這樣做?

回答

1

你可以設置VALU es你想出現白色到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() 

enter image description here