Tho*_*ins 10 python arrays plot matplotlib color-mapping
我有一个方格阵列的元素,对应格子网站.一些元素为零,其余元素在1到2700之间变化.使用imshow和OrRd颜色图,我希望所有大于0的网格点都显示相应的颜色,但重要的是,所有值为0的网站都显示为黑色.我尝试定义一个新的颜色映射如下:
colors = [(0,0,0)] + [(pylab.cm.OrRd(i)) for i in range(1,256)]
new_map = matplotlib.colors.LinearSegmentedColormap.from_list('new_map', colors, N=256)
Run Code Online (Sandbox Code Playgroud)
但是我的数组中的值范围太大,因此很多非零值显示为黑色.
非常感谢.
Rut*_*ies 20
Matplotlib的颜色表有一个set_bad
和set_under
它可以用于此属性.这个例子展示了如何使用set_bad
import matplotlib.pyplot as plt
import numpy as np
# make some data
a = np.random.randn(10,10)
# mask some 'bad' data, in your case you would have: data == 0
a = np.ma.masked_where(a < 0.05, a)
cmap = plt.cm.OrRd
cmap.set_bad(color='black')
plt.imshow(a, interpolation='none', cmap=cmap)
Run Code Online (Sandbox Code Playgroud)
要使用set_under
变体,您必须将vmin
关键字添加到绘图命令,并且设置略高于零(但低于任何其他有效值):
cmap.set_under(color='black')
plt.imshow(a, interpolation='none', cmap=cmap, vmin=0.0000001)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13875 次 |
最近记录: |