当我使用plt.pcolormesh(xx,cmap =xx)时,我不能设置绘图的最小值。例如,我画了一个二维数组数据,它表示某个地区的人口密度。如果我想显示超过某个值的人口密度(如4500人/平方公里),我可以使用plt.contourf(pop,levels = [4500,6000,xxxx,xxxxx])来解决这个问题。但是我想用pcolormesh风格,我想过两种方法:
z4bn682m1#
对我来说,最明显的两个选择是(1)将数据转换为掩码数组,并使用colormap的set_bad()方法设置颜色,或者(2)将vmin参数用于pcolormesh(),并使用colormap的set_under()方法设置颜色。下面是一个使用Numpy数组xx中的一些数据的例子,这些数据的值在0到57之间。我屏蔽了小于25的值,并将屏蔽值的绘图颜色设置为黑色,这样更容易看到效果。
set_bad()
vmin
pcolormesh()
set_under()
xx
import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm F, (A1,A2) = plt.subplots(ncols=2,figsize=(15,5)) # Option 1: xxm = np.ma.masked_less(x,25) cmap1 = cm.get_cmap("jet",lut=10) cmap1.set_bad("k") A1.set_title("Using masked array") P = A1.pcolormesh(LON,LAT,xxm,cmap=cmap1) plt.colorbar(P,ax=A1) # Option 2: cmap2 = cm.get_cmap("jet",lut=10) cmap2.set_under("k") A2.set_title("Using vmin") P = A2.pcolormesh(LON,LAT,xx,cmap=cmap2,vmin=25) plt.colorbar(P,ax=A2) plt.show()
1条答案
按热度按时间z4bn682m1#
对我来说,最明显的两个选择是(1)将数据转换为掩码数组,并使用colormap的
set_bad()
方法设置颜色,或者(2)将vmin
参数用于pcolormesh()
,并使用colormap的set_under()
方法设置颜色。下面是一个使用Numpy数组
xx
中的一些数据的例子,这些数据的值在0到57之间。我屏蔽了小于25的值,并将屏蔽值的绘图颜色设置为黑色,这样更容易看到效果。