Matplotlib 轮廓:设置颜色条的范围(不是颜色图的范围)

时间:2021-07-05 10:41:59

标签: python matplotlib contour

我对用户定义级别的等高线图的颜色条有问题。如下图所示,最高级别的颜色(红色)在颜色栏中没有很好地显示。为了解决这个问题,我想更改颜色条的范围(例如从 0 到 1),同时不更改颜色图的轮廓级别或范围。

到目前为止,我已经尝试在颜色条调用中手动设置颜色条的刻度,但这并没有改变范围。 (也就是说,0.3-0.8 以外的刻度不会出现)

最小工作示例:

import numpy as np
import matplotlib.pyplot as plt

z = np.random.rand(10,10)
im = plt.contour(z, levels = [0.3,0.5,0.8], cmap="rainbow")
plt.colorbar(im)

contour plot

1 个答案:

答案 0 :(得分:1)

<块引用>

我想更改颜色条的范围(例如从 0 到 1)

enter image description here

保存颜色条对象,更改其边界和刻度的位置,最后更新绘图以反映我们的意愿。

import numpy as np
import matplotlib.pyplot as plt

z = np.random.rand(10,10)
im = plt.contour(z, levels = [0.3,0.5,0.8], cmap="rainbow")
cb = plt.colorbar(im)
cb.boundaries = np.array((0.0, 0.5, 1.0))
cb.set_ticks((0, 0.3, 0.5, 0.8, 1))
cb.update_normal(im)