前言
现在想自定义一个colormap,在网上搜索发现可以使用LinearSegmentedColormap将一个离散的颜色列表通过线性插值转换为一个指定颜色数目的colormap。之后就可以直接在python中绘图使用了。
import matplotlib as mpl
from pylab import *
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap,LinearSegmentedColormap
clist=['black','darkred','red']
# N 表示插值后的颜色数目
newcmp = LinearSegmentedColormap.from_list('chaos',clist,N=256)
aa = plt.imshow(np.random.randint(1,10,(5,5)),newcmp)
plt.colorbar(aa)
如何将此colormap保存下来用于其它的地方呢?
因为我主要是想通过python产生colormap,然后使用该colormap用于其它的地方绘图,因此得到底层产生的数据就十分有必要。增加以下几行代码就可以得到。
color_list = [[newcmp(i)[0],newcmp(i)[1],newcmp(i)[2] ]for i in range(newcmp.N)]
npList = np.array(color_list)
np.savetxt('black2read_cmp.txt',npList,fmt='%.3e')
最后欢迎大家一起交流自定义colormap的各种方法,实现colormap自由。
|