使用Contourf设置颜色栏范围

时间:2018-12-05 22:20:25

标签: python matplotlib

这似乎是该问题的重复:

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)

产生

enter image description here

如何使用轮廓f强制将颜色栏范围设置为0到2?

1 个答案:

答案 0 :(得分:2)

contourf的工作确实与其他ScalarMappable有所不同。如果指定级别数(在这种情况下为20),它将使它们介于最小和最大数据之间(大约)。如果要在两个特定值nvmin之间设置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()

enter image description here