繁体   English   中英

如何使用matplotlib调整与颜色栏中的刻度相对应的颜色?

[英]How to adjust the colors corresponding to ticks in colorbar using matplotlib?

我有一个图,在对数刻度中使用颜色条,如下图所示。 我正在使用cmap='RdBu_r'并且我希望值1为白色,但是,颜色cmap='RdBu_r'的白色接近于值2.8。 谁能告诉我该如何调整?

带有对数刻度的图形

码:

from mpl_toolkits.basemap import Basemap
m = Basemap(projection='robin', lon_0=180)

fig = plt.figure(figsize=(17,4))

axi1 = fig.add_subplot(121)
m.fillcontinents(color='0.5', lake_color='0.7')
m.drawmapboundary(fill_color='none')
x, y = m(np.ma.masked_invalid(np.roll(lon, -110, axis=1)[:210, :352]), 
     np.ma.masked_invalid(np.roll(lat, -110, axis=1)[:210, :352]))
pc = m.pcolor(x, y, 
              np.ma.masked_invalid(np.roll(1.6**-1 * RdML_win * 2*np.pi / drT, 
                                                    -110, axis=1)[:210, :352]), cmap='RdBu_r',
         norm=colors.LogNorm(vmin=.5, vmax=1e1))
axi1.set_title(r'winter', fontsize=16, y=1.06)
m.drawparallels(range(-60,61,30), labels=[1,1,0,0]);
m.drawmeridians(range(30,360,60), labels=[0,0,1,1]);


axi2 = fig.add_subplot(122)
m.fillcontinents(color='0.5', lake_color='0.7')
m.drawmapboundary(fill_color='none')
x, y = m(np.ma.masked_invalid(np.roll(lon, -110, axis=1)[:210, :352]), 
     np.ma.masked_invalid(np.roll(lat, -110, axis=1)[:210, :352]))
pc = m.pcolor(x, y, 
              np.ma.masked_invalid(np.roll(1.6**-1 * RdML_sum * 2*np.pi / drT, 
                                                    -110, axis=1)[:210, :352]), cmap='RdBu_r',
         norm=colors.LogNorm(vmin=.5, vmax=1e1))
axi2.set_title(r'summer', fontsize=16, y=1.06)
m.drawparallels(range(-60,61,30), labels=[1,1,0,0]);
m.drawmeridians(range(30,360,60), labels=[0,0,1,1]);

cbar_axim = fig.add_axes([0.93, 0.14, 0.02, 0.7])
cbar = fig.colorbar(pc, cax=cbar_axim, ticks=[.5, 1., 3., 6., 1e1])
cbar.set_ticklabels(['0.5', '1.', '3.', '6.', '10.'])
cbar.set_label(r'$\frac{1.6^{-1} L_d^{ML}}{\Delta x}$', fontsize=17)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM