这似乎是该问题的重复:
Set Colorbar Range in matplotlib
基本上,我想设置颜色栏范围以设置限制,例如0到2。当我使用vmin和vmax时,contourf中的颜色范围已正确设置,但是colorbar仅显示裁剪的范围,即,当使用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)
产生
如何使用轮廓f强制将颜色栏范围设置为0到2?
答案 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()