1

我想绘制二维函数 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()

结果图:

http://i.stack.imgur.com/OLcrw.png

首先,我想将深蓝色更改为白色,其次,重新调整颜色条

非常感谢您的帮助

4

1 回答 1

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
于 2015-03-10T09:12:42.880 回答