Это должно быть легко, но мне сложно с этим справиться. В принципе, у меня есть подзадача в matplotlib, что я рисую график hexbin каждый раз, когда вызывается функция, но каждый раз, когда я вызываю функцию, я получаю новую панель цветов, поэтому мне бы очень хотелось обновить colorbar, К сожалению, это, похоже, не работает, поскольку объект, к которому привязан цветной байт, воссоздается с помощью subplot.hexbin.
def foo(self):
self.subplot.clear()
hb = self.subplot.hexbin(...)
if self.cb:
self.cb.update_bruteforce() # Doesn't work (hb is new)
else:
self.cb = self.figure.colorbar(hb)
Я сейчас в этом раздражающем месте, где я пытаюсь полностью удалить оси colorbar и просто воссоздать его. К сожалению, когда я удаляю оси colorbar, оси subplot не возвращают пространство, и вызов self.subplot.reset_position() не делает то, что я думал.
def foo(self):
self.subplot.clear()
hb = self.subplot.hexbin(...)
if self.cb:
self.figure.delaxes(self.figure.axes[1])
del self.cb
# TODO: resize self.subplot so it fills the
# whole figure before adding the new colorbar
self.cb = self.figure.colorbar(hb)
Есть ли у кого-нибудь предложения?
Большое спасибо! Адам