使用contourf设置颜色条范围

问题描述 投票:0回答:1

这似乎是这个问题的重复:

在 matplotlib 中设置颜色条范围

本质上我想设置

colorbar
范围来设置限制,例如0 到 2。当我使用
vmin
vmax
时,
contourf
中的颜色范围设置正确,但颜色栏仅显示剪切范围,即使用
 时链接中的解决方案似乎不起作用contourf
。我错过了一些明显的东西吗?

import numpy as np
import matplotlib.pyplot as plt
fld=np.random.rand(10,10)
img=plt.contourf(fld,20,cmap='coolwarm',vmin=0,vmax=2)
plt.colorbar(img)

导致

如何使用

contourf
强制颜色条范围为 0 到 2?

python matplotlib colorbar contourf
1个回答
19
投票

contourf
的工作原理确实与其他
ScalarMappable
有所不同。如果您指定级别数(在本例中为 20),它们将介于最小数据和最大数据之间(大约)。如果您希望在两个特定值
n
vmin
之间具有
vmax
水平,您需要将这些值提供给轮廓函数

levels = np.linspace(vmin, vmax, n+1)
plt.contourf(fld,levels=levels,cmap='coolwarm')

完整代码:

import numpy as np
import matplotlib.pyplot as plt
fld=np.random.rand(10,10)
levels = np.linspace(0,2,21)
img=plt.contourf(fld,levels=levels,cmap='coolwarm')
plt.colorbar(img)
plt.show()

© www.soinside.com 2019 - 2024. All rights reserved.