这似乎是这个问题的重复:
本质上我想设置
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?
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()