【发布时间】:2018-02-02 07:29:54
【问题描述】:
在以下示例中,我想手动将contourf 绘图的levels 设置为某个变量的分位数(以增强可视化)。
但是给出levels 也会影响colormap 的颜色缩放(看看红色是如何扩展的-> 视觉印象不受影响):我怎样才能让它们保持线性?
换句话说,如何保持颜色条的颜色与顶部子图中一样,但与底部子图中的值相对应?
import matplotlib.pyplot as plt
import numpy as np
xvec = np.linspace(-10.,10.,100)
x,y = np.meshgrid(xvec, xvec)
z = -(x**2 + y**2)**2
fig, (ax0, ax1) = plt.subplots(2)
p0 = ax0.contourf(x, y, z, 100)
fig.colorbar(p0, ax=ax0)
p1 = ax1.contourf(x, y, z, 100, levels=np.percentile(z, np.linspace(0,100,101)))
fig.colorbar(p1, ax=ax1)
plt.show()
我是否错过了一些简单的解决方案(我打赌是的),还是我应该尝试做一些matplotlib.colors.LinearSegmentedColormap 操作...?!
【问题讨论】:
标签: python matplotlib colormap color-mapping