Hello everyone, 

I have a problem with a colorbar:
I have a stackedbar and a colorbar that I want to create or delete by clicking 
on a button.. but when the colorbar is deleted I want to change the dimension 
of the axes, resizing it even in the place occupied by the colorbar..
I need to create the colorbar by using the function "make_axes_locatable" and 
not others function..

Someone can help me?

this is the code: 

from matplotlib.figure import Figure
from mpl_toolkits.axes_grid.axes_divider import make_axes_locatable
from matplotlib import mpl, colorbar
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as 
FigureCanvas
from PyQt4.QtCore import *
from PyQt4.QtGui import *


import sys

class Test(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.resize(1000, 700)
        self.setGeometry(20,30,700,500)       
        self.fig = Figure(figsize=(100,100), dpi=75)         
        self.canvas = FigureCanvas(self.fig)
        self.axes = self.fig.add_subplot(111)
        b = self.axes.bar([0,1,2,3],[5,4,9,6])
        self.colorbar = True
        self.Colorbar()
        self.old_size = self.axes.get_position()
        self.btn = QPushButton()
        self.btn.resize(20,20)
        self.btn.clicked.connect(self.OnBtnClicked)
        self.Layout = QHBoxLayout()
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, 
                                 QSizePolicy.Minimum)
        self.Layout.addItem(spacerItem)
        self.Layout.addWidget(self.canvas)
        self.Layout.addWidget(self.btn)
        self.setLayout(self.Layout)

    def OnBtnClicked(self):
        self.colorbar = not self.colorbar
        self.Colorbar()

    def Colorbar(self):
        if self.colorbar :
            self.divider = make_axes_locatable(self.axes)
            self.cax = self.divider.append_axes("right", size="3%", pad=0.1)
            self.cmap = mpl.colors.ListedColormap(['b'])            
            self.cb = mpl.colorbar.ColorbarBase(self.cax, 
                                                cmap=self.cmap, 
                                                orientation='vertical') 
        else:
            if hasattr(self, "cb") :
                fig = self.axes.get_figure()
                fig.delaxes(self.cb.ax)
                del self.cb
                self.axes.set_position(self.old_size)  
        self.fig.canvas.draw()



app = QApplication(sys.argv)
win = Test()
win.show()
sys.exit(app.exec_())


thanks
Erika


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to