这应该很容易,但我很难做到。基本上,我在matplotlib中有一个子图,每次调用一个函数时,我都会在其中绘制一个六进制图,但每次我调用该函数时,我都会得到一个新的颜色条,所以我真正想做的是更新颜色条。不幸的是,这似乎不起作用,因为subplot.hexbin正在重新创建colorbar附加到的对象。
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)
我现在在这个恼人的地方,我试图完全删除颜色条轴,并简单地重新创建它。不幸的是,当我删除颜色条轴时,子图轴并没有回收空间,并且调用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)
有人有什么建议吗?
非常感谢!亚当
https://stackoverflow.com/questions/5263034
复制相似问题