我对用户定义级别的等高线图的颜色条有问题。如下图所示,最高级别的颜色(红色)在颜色栏中没有很好地显示。为了解决这个问题,我想更改颜色条的范围(例如从 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)
答案 0 :(得分:1)
我想更改颜色条的范围(例如从 0 到 1)
保存颜色条对象,更改其边界和刻度的位置,最后更新绘图以反映我们的意愿。
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)