我想设置 matplotlib 的色条范围。以下是我目前的代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(20)
y = np.arange(20)
data = x[:-1,None]+y[None,:-1]
fig = plt.gcf()
ax = fig.add_subplot(111)
X,Y = np.meshgrid(x,y)
quadmesh = ax.pcolormesh(X,Y,data)
plt.colorbar(quadmesh)
#RuntimeError: You must first define an image, eg with imshow
#plt.clim(vmin=0,vmax=15)
#AttributeError: 'AxesSubplot' object has no attribute 'clim'
#ax.clim(vmin=0,vmax=15)
#AttributeError: 'AxesSubplot' object has no attribute 'set_clim'
#ax.set_clim(vmin=0,vmax=15)
plt.show()
我该如何在这里设置色条限制?
ax.set_xlim
起作用而ax.set_clim
没有起作用,我很想听听(我相信其他人可能会有更好的答案 - 所以如果您可以,请详细解释!) - mgilsonquadmesh.__class__.mro()
,你会发现quadmesh的类具有ScalarMappable混合类。如果你查看matplotlib/cm.py
,你会发现它是ScalarMappable混合类处理颜色映射,特别是它提供了set_clim方法。 - unutbuplt.clim
的作用,它会调用gci
(获取当前“image”),并在结果上调用set_clim
。 还有一个函数plt.sci()
,可以设置当前图片,因此plt.clim
将起作用。 我猜这没有完成是因为您通过pyplot
接口的OO界面进行了pcolor
调用。 - tacaswellax.pcolormesh(X, Y, data, vmin=0, vmax=15)
。 - tommy.carstensen