matplotlib 用轮廓设置颜色条范围

i1icjdpr  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(90)

这似乎是这个问题的重复:
Set Colorbar Range in matplotlib
本质上,我想设置colorbar范围来设置限制,例如0到2。当我使用vminvmax时,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)

导致

如何使用contourf将颜色条范围强制为0到2?

ac1kyiln

ac1kyiln1#

contourf的工作方式确实与其他ScalarMappable有点不同。如果您指定了级别数(在本例中为20),它将在最小和最大数据之间(大约)取这些级别。如果您希望n级别在两个特定值vminvmax之间,则需要将这些级别提供给轮廓函数

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()

相关问题