我想绘制2D函数f(x,y)的映射,其中f(x,y)未在[0; 1]中的x和[0; 1]中的y的整个范围上定义。 1.5
我正在使用imshow函数绘制地图。但是,色彩映射会将数据等于-1。我想重新缩放色彩图并更改为-1指定的颜色。
我的代码:数据使用矩阵格式在ascii文件中
filename = "map_chi_h_rho_disc2.txt"
raw_data = np.loadtxt(filename)
zeta = raw_data[:1] # first line
zeta = zeta[0] # array of array with 1 element to 1 array
zeta = zeta[1:] # remove first element
eta = np.array(np.transpose(raw_data)[0]) # first column
eta = eta [1:] # remove first element
data = raw_data[1:] # remove first line
data = data[:,1:] # remove first column
data = np.transpose(data)
etab = 0
etae = eta[-1]
zetab = 0
zetae = zeta[-1]
fig = plt.figure()
cmap2 = plt.get_cmap("jet")
im1= imshow(data, interpolation='bicubic', origin='lower',cmap = cmap2 , extent=(etab,etae,zetab,zetae),aspect='auto')
# limit of cmap
climitb = 1.5
climite = 2.5
v = np.linspace(climitb, climite, 5, endpoint=True)
cbar =fig.colorbar(im1,ticks=v)
plt.clim(climitb,climite)
plt.show()
由此产生的数字:
首先,我想将深蓝色更改为白色,然后重新调整颜色栏
非常感谢您的帮助
答案 0 :(得分:1)
您可以通过设置vmin,vmax来重新缩放颜色贴图:
plt.clim(vmin, vmax) # use dark blue for vmin -> red for vmax
要“清除”其他值(在您定义的范围之下和之上),您可以使用cmap函数来精确应用的颜色:
cmap.set_under('w') # will use white for values under vmin
cmap.set_over('k') # will use black for values over vmax