supprimer la barre de couleur de la figure dans matplotlib

Ce devrait être facile, mais je vais avoir un moment difficile avec elle. En gros, j'ai une intrigue secondaire dans matplotlib que je suis le dessin d'un hexbin intrigue à chaque fois qu'une fonction est appelée, mais chaque fois que j'appelle la fonction-je obtenir une nouvelle barre de couleur, donc ce que j'aimerais vraiment faire est de mettre à jour la barre de couleur. Malheureusement, cela ne semble pas fonctionner, puisque l'objet de la barre de couleur est attachée à est recréé par l'intrigue secondaire.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)

Je suis maintenant dans cette fâcheuse endroit où je suis en train de supprimer la barre de couleur axes complètement et simplement de le recréer. Malheureusement, quand je supprime la barre de couleur axes, l'intrigue secondaire axes de ne pas libérer de l'espace, et de l'appel de l'auto.intrigue secondaire.reset_position() n'est pas de faire ce que j'ai pensé qu'il serait.

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)

Quelqu'un aurait-il des suggestions?

Beaucoup apprécié!
Adam

  • Je ne pense pas que vous devriez être la création d'un nouveau hexbin intrigue à chaque fois que la fonction est appelée. Je pense que ce que vous voulez est de mettre à jour les données existantes de la parcelle en quelque sorte (je ne suis pas assez familier avec hexbin-à-dire comment). J'ai quelques questions. Est-ce de la parcelle d'animation? Êtes-vous obtenir de multiples colorbars côté-à-côte? Pourriez-vous poster un exemple, avec quelques fausses données?
  • J'ai considéré que, mais je sentais que c'était une voie difficile à prendre puisque c'est tout un traçage interactif de l'outil. L'utilisateur peut modifier le nombre de bacs, gridsize, les échelles de l'axe, de la source de données, etc. Je vais continuer à cogner ma tête contre cette barre de couleur chose pour l'instant, et si je frappe un mur, je vais envisager de la faire bouillir vers le bas pour un exemple de travail que je peux partager. Merci Paul.
  • Vous pouvez créer un spécifique ax pour la barre de couleur claire et cette hache. fig.colorbar(cax=cax) et cax.cla()
InformationsquelleAutor Adam Fraser | 2011-03-10