这个问题可能有一个非常简单的解决方案,但我就是找不到。我想绘制一个 contourf 图,其中我的数据的一部分以 1 阶的步长变化,另一部分以 100 阶的步长变化。 现在我试着像这样给出轮廓水平:
contour_levels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 300, 400]
然而,这导致了第 11 个级别都具有相同颜色的结果,因为 matplotlib 以某种方式将其标准化为最大值。就我的色图而言,如何使每个级别都同等重要?
非常感谢 HYRY,您的回答解决了我的问题。这是执行前后的图(我稍微调整了水平;数据来自 GOZCARDS 团队/NASA):
请您参考如下方法:
使用colors参数:
import pylab as pl
import numpy as np
x, y = np.mgrid[-1:1:100j, 0:1:100j]
z = ... # your function
contour_levels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 300, 400]
cmap = pl.cm.BuPu
colors = cmap(np.linspace(0, 1, len(contour_levels)))
pl.contour(x, y, z, levels=contour_levels, colors=colors)
