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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users