19
我想设置matplotlib颜色条范围。这是我到目前为止有:设置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()
如何设置的彩条的限制吗?
我真的很想深入了解这个API的实际工作原理。如果任何人都可以向我解释为什么'ax.set_xlim'工作,但是'ax.set_clim'不能从API的角度来工作,我很乐意听到(并且我确信其他人可以得到比这更好的答案 - 所以请解释更多,如果你可以!) – mgilson 2013-03-07 21:36:46
我不知道这是否回答你的问题,但如果你看看'quadmesh .__ class __。mro()'你会看到quadmesh的类有'ScalarMappable' mixin 。如果你看看'matplotlib/cm.py',你会发现它是'ScalarMappable' mixin,它处理colormapping,特别是它提供'set_clim'方法。 – unutbu 2013-03-07 22:06:27
每个(ScalarMappable)艺术家都控制自己的颜色。颜色条被附加到一个ScalarMappable(通过'plt.colorbar(quadmesh)'调用)。所以艺术家的色彩映射控制了色条的色彩映射。它不是一个轴全色映射。因此,'ax'没有属性'set_clim'。 – unutbu 2013-03-07 22:10:00