Eli*_*i S 2 python matplotlib contour color-mapping
我想在matplotlib(Win7,1.1.0)中创建一个填充的等高线图.我想突出显示某些值,并且级别更接近于log而不是线性.
有许多适合我的色彩图,但我忽略了我对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)
Run Code Online (Sandbox Code Playgroud)
我希望这个片段足以至少开始对话.
谢谢,Eli
如果我理解正确,您需要使用级别作为基础而不是默认线性缩放,将数据重新缩放为颜色.如果这是正确的,那么你需要使用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()
Run Code Online (Sandbox Code Playgroud)
这产生了

将其与默认Normalize行为进行比较:

希望有所帮助.
| 归档时间: |
|
| 查看次数: |
3291 次 |
| 最近记录: |