颜色地图被忽略matplotlib contourf阴谋与自定义水平

颜色地图被忽略matplotlib contourf阴谋与自定义水平

问题描述:

我想在matplotlib(Win7,1.1.0)中创建一个实心轮廓阴谋。我想强调某些值,并且这些级别比线性更接近日志。颜色地图被忽略matplotlib contourf阴谋与自定义水平

有许多colormap适合我,但我选择的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) 

我希望这段代码足以至少开始对话。

感谢, 礼

如果我理解正确的话,你需要将数据重新调整到使用的水平为基础,而不是默认的线性缩放的颜色。如果这是正确的,那么你需要使用colors.BoundaryNorm作为标准因子。请看下面的例子:

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() 

这就产生

enter image description here

比较它默认Normalize行为:

enter image description here

希望有所帮助。

+0

是的,这工作正常。谢谢! – 2012-02-21 05:16:19