<p>您可以创建自己的颜色映射,或调整现有的颜色映射:)</p>
<p><img src="https://i.stack.imgur.com/EPAN5.png" alt="enter image description here"/></p>
<p>以下是上述情节的代码,注释中有解释:</p>
<pre><code>import matplotlib
from pylab import *
import numpy as np
#Create test data with zero valued diagonal:
data = np.random.random_sample((25, 25))
rows, cols = np.indices((25,25))
data[np.diag(rows, k=0), np.diag(cols, k=0)] = 0
#Create new colormap, with white for zero
#(can also take RGB values, like (255,255,255):
colors = [('white')] + [(cm.jet(i)) for i in xrange(1,256)]
new_map = matplotlib.colors.LinearSegmentedColormap.from_list('new_map', colors, N=256)
pcolor(data, cmap=new_map)
colorbar()
savefig('map.png')
show()
</code></pre>
<p>或者,可以屏蔽数据,并设置遮罩颜色:</p>
<pre><code>#Create test data:
data = np.random.random_sample((25, 25))
#Create a diagonal mask:
mask = np.diag(np.ones(25))
#Apply mask to data:
masked_data = ma.masked_array(data, mask)
#Set mask color to white:
cm.jet.set_bad(color='white', alpha=None)
#for this to work we use pcolormesh instead of pcolor:
pcolormesh(masked_data, cmap=cm.jet)
colorbar()
show()
</code></pre>
<p>这会产生基本相同的结果,但可能更适合您的需要,因为您可以将任何单元格设置为白色,而且白色不会显示在颜色栏上(请参见上面颜色栏的底部):</p>
<p><img src="https://i.stack.imgur.com/k49EW.png" alt="enter image description here"/></p>