Python 对于具有自定义级别的matplotlib contourf plot,将忽略Colormap
我正在尝试在matplotlib(Win7,1.1.0)中创建填充等高线图。我想突出显示某些值,并且级别更接近对数而不是线性 有许多颜色贴图适合我,但我对cmap的选择被忽略了 我需要创建一个自定义的“规范化”吗?如果是,每个轮廓是否根据其边缘值着色,然后用相同的颜色填充到下一个较低的值?为什么这种症状忽略了我的颜色贴图。。。这是不是在构建过程中出现了异常,而我的请求被悄悄地忽略了 我的原始数据缺少值。我一直在做这个,大大小小的。。。在每种情况下,我都试图屏蔽它们,而不是屏蔽“外部”值。我还尝试了使用默认级别和规范的所有排列Python 对于具有自定义级别的matplotlib contourf plot,将忽略Colormap,python,matplotlib,contour,color-mapping,Python,Matplotlib,Contour,Color Mapping,我正在尝试在matplotlib(Win7,1.1.0)中创建填充等高线图。我想突出显示某些值,并且级别更接近对数而不是线性 有许多颜色贴图适合我,但我对cmap的选择被忽略了 我需要创建一个自定义的“规范化”吗?如果是,每个轮廓是否根据其边缘值着色,然后用相同的颜色填充到下一个较低的值?为什么这种症状忽略了我的颜色贴图。。。这是不是在构建过程中出现了异常,而我的请求被悄悄地忽略了 我的原始数据缺少值。我一直在做这个,大大小小的。。。在每种情况下,我都试图屏蔽它们,而不是屏蔽“外部”值。我还尝试
lev = [0.1,0.2,0.5,1.0,2.0,4.0,8.0,16.0,32.0]
norml = colors.normalize(0,32)
cs = plt.contourf(x,z,data,cmap=cm.gray, levels=lev, norm = norml)
我希望这个片段至少足以开始对话
谢谢,
Eli如果我理解正确,您需要使用级别作为基础,而不是默认的线性缩放,将数据重新缩放为颜色。如果这是正确的,那么您需要使用作为标准因子。考虑下面的例子:
x = np.arange(0,8,0.1)
y = np.arange(0,8,0.1)
z = (x[:,None]-4) ** 2 + (y[None,:]-4) ** 2
lev = [0.1,0.2,0.5,1.0,2.0,4.0,8.0,16.0,32.0]
norml = colors.BoundaryNorm(lev, 256)
cs = plt.contourf(x, y, z, cmap = cm.jet, levels = lev, norm = norml)
plt.show()
这就产生了
将其与默认的规范化行为进行比较:
希望有帮助