Python 使用不同的打印类型设置“vmin”和“vmax”时的不同结果 背景
对于绘制某些属性的二维空间分布,Python 使用不同的打印类型设置“vmin”和“vmax”时的不同结果 背景,python,matplotlib,matplotlib-basemap,colormap,grib,Python,Matplotlib,Matplotlib Basemap,Colormap,Grib,对于绘制某些属性的二维空间分布,tourtf和pcolormesh都是很好的可视化形式选择 由于绘图数据的实际意义,我想设置以白色显示的零附近的值(例如,[-0.2,0.2]);零值应该是中点 从问题[,我试图设置vmin和vmax来调整颜色映射 数据导入 1.等值线图 2.Pcolormesh图 我将数据上传为.grib2文件。如果您感兴趣,可以下载它 我的怀疑 使用contourf绘图类型,设置对称vmin和vmax无法将zeron调整到彩色贴图的中点。这与pcolormesh不同 相同
tourtf
和pcolormesh
都是很好的可视化形式选择
由于绘图数据的实际意义,我想设置以白色显示的零附近的值(例如,[-0.2,0.2]);零值应该是中点
从问题[,我试图设置vmin
和vmax
来调整颜色映射
数据导入
1.等值线图
2.Pcolormesh图
我将数据上传为.grib2文件。如果您感兴趣,可以下载它
我的怀疑
vmin
和vmax
无法将zeron调整到彩色贴图的中点。这与pcolormesh不同RdBu_r
==>在tourf
和pcolormesh
绘图中不同的结果。在pcolormesh
绘图中,颜色条的中间部分显示为white color
。但在tourf
绘图中,白色似乎被忽略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()
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)
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)