Ответ 1
Arg. Это всегда последнее, что вы пытаетесь:
quadmesh.set_clim(vmin=0, vmax=15)
работы.
Я хотел бы установить диапазон цветовых пар 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()
Как установить здесь границы цвета?
Arg. Это всегда последнее, что вы пытаетесь:
quadmesh.set_clim(vmin=0, vmax=15)
работы.
Matplotlib 1.3.1 - Похоже, что цветные галочки отображаются только тогда, когда отображается цветная панель. Изменение границ цветовой панели (set_clim) не приводит к повторному рисованию тиков.
Решение, которое я нашел, состояло в том, чтобы повторно указать цветную панель в той же позиции оси, что и исходная панель цветов. В этом случае ось [1] была исходной колорией. Добавлен новый экземпляр colorbar с обозначением cax = (дочерние оси) kwarg.
# Reset the Z-axis limits
print "resetting Z-axis plot limits", self.zmin, self.zmax
self.cbar = self.fig.colorbar(CS1, cax=self.fig.axes[1]) # added
self.cbar.set_clim(self.zmin, self.zmax)
self.cbar.draw_all()
[Извините, на самом деле комментарий The Red Gator в Virginias отвечает, но не хватает репутации для комментариев]
Я застрял в обновлении colorbar объекта imshow после его рисования и изменения данных с помощью imshowobj.set_data(). Использование cbarobj.set_clim() действительно обновляет цвета, но не галочки или диапазон цветовой панели. Вместо этого вы должны использовать imshowobj.set_clim(), который будет корректно обновлять изображение и colorbar.
data = np.cumsum(np.ones((10,15)),0)
imshowobj = plt.imshow(data)
cbarobj = plt.colorbar(imshowobj)
imshowobj.set_data(data/10) #scale is wrong now, shows only dark color
#cbarobj.set_clim(0,1) #! image colors will update, but cbar ticks not
imshowobj.set_clim(0,1) #correct