contourf的colorbar如何设置显示范围
在多个子图中,若我们想共用一个colorbar,不致于同一个颜色在不同子图里对应不同的数值,可有以下两种解决方法:
一:利用contourf
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10.1,0.1)
y=np.arange(0,10.1,0.1)
X,Y=np.meshgrid(x,y)
Z=X**2+Y**2
ax=plt.contourf(X,Y,Z,100,cmap='jet')
cbar=plt.colorbar()
出图如下
矩阵Z的最大值为200,最小值为0,假如现在想把colorbar的显示范围控制在20~100之间。可通过contourf:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10.1,0.1)
y=np.arange(0,10.1,0.1)
X,Y=np.meshgrid(x,y)
Z=X**2+Y**2
ax=plt.contourf(X,Y,Z,cmap='jet',levels=np.linspace(20,100,100),extend='both')
cbar=plt.colorbar()
即达到理想效果,colorbar的显示范围被固定,大于10
的值被归为最大值100,小于20的值被归为最小值20。
二:利用pcolor
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10.1,0.1)
y=np.arange(0,10.1,0.1)
X,Y=np.meshgrid(x,y)
Z=X**2+Y**2
ax=plt.pcolor(X,Y,Z,cmap='jet',vmin=20,vmax=100)
cbar=plt.colorbar()
原文章摘自:http://app.06climate.com/mag/circle/v1/forum/threadWapPage?tid=96764&themecolor=f7d856&circle_id=122