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