python - The different result when I set `vmin` and `vmax` with different plot type -


background

for plotting 2-d spatial distribution of attribute, contourf , pcolormesh both choice visualization form.

due actual meaning of plotting data, want set value nearby 0 showing in white color(for example, [-0.2,0.2]); , 0 value should midpoint

from question [defining midpoint of colormap in matplotlib, tried set vmin , vmax adjust colormap.

data import

import pygrib grib='fnl_20141110_12_00.grib2'; grbs=pygrib.open(grib) grb = grbs.select(name='vertical velocity')[8]#vertical velocity data=grb.values lat,lon = grb.latlons() 

1. contourf plot

m = basemap(llcrnrlon=110,llcrnrlat=34,urcrnrlon=122,urcrnrlat=44,projection='mill') fig=plt.figure(figsize=(8,4)) ax1 = plt.subplot(121) x, y = m(lon, lat) cs = m.contourf(x,y,data,cmap=plt.cm.rdbu)  cb = m.colorbar(cs,"bottom", size="5%", pad="8%") ax1.set_title("original",fontsize = 15)  ax2 = plt.subplot(122) cs = m.contourf(x,y,data,cmap=plt.cm.rdbu,vmin = -1.8,vmax =1.8) cb = m.colorbar(cs,"bottom", size="5%", pad="8%") ax2.set_title("symmetrical vmin & vmax",fontsize = 15) 

enter image description here

2. pcolormesh plot

m = basemap(llcrnrlon=110,llcrnrlat=34,urcrnrlon=122,urcrnrlat=44,projection='mill') fig=plt.figure(figsize=(8,4)) ax1 = plt.subplot(121) cs = m.pcolormesh(x,y,data,cmap=plt.cm.rdbu) cb = m.colorbar(cs,"bottom", size="5%", pad="8%") ax1.set_title("original",fontsize = 15)  ax2 = plt.subplot(122) cs = m.pcolormesh(x,y,data,cmap=plt.cm.rdbu,vmin = -1.8,vmax =1.8) cb = m.colorbar(cs,"bottom", size="5%", pad="8%") ax2.set_title("symmetrical vmin & vmax",fontsize = 15) 

enter image description here

i upload data here .grib2 file. if interested, can download it

my doubt

  1. with contourf plot type, setting symmetrical vmin , vmax couldn't adjust zeron midpoint of colormap. that's different pcolormesh.

  2. the same colormap rdbu_r ==> different result in contourf , pcolormesh. in pcolormesh plot, middle partof colorbar shown in white color. in contourf plot, white color seemed ignored.