How to draw a frame on a matplotlib figure

Viewed 20014

I want to show the frame in this figure. enter image description here I tried running the code below but it didnt work :

ax = self.canvas.figure.add_subplot(111)
ax.spines['top'].set_visible(True)
ax.spines['right'].set_visible(True)
ax.spines['bottom'].set_visible(True)
ax.spines['left'].set_visible(True)
ax.plot(diff)

I also tried :

plt.tight_layout()

but it generates this error :

> File "runme.py", line 54, in autocorr_function
>     plt.tight_layout()   File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line
> 1406, in tight_layout
>     fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py",
> line 1753, in tight_layout
>     rect=rect)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/tight_layout.py",
> line 326, in get_tight_layout_figure
>     max_nrows = max(nrows_list) ValueError: max() arg is an empty sequence

Your help would be appreciated, thank you.

EDIT : Here's the code of the canvas :

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 

import matplotlib.pyplot as plt from PyQt4 import QtGui 

class   Canvas(FigureCanvas):

     def __init__(self, parent=None):
         self.figure = plt.figure()     #plt.tight_layout(pad=4)
         FigureCanvas.__init__(self, self.figure)
         self.setParent(parent)
         FigureCanvas.setSizePolicy(self,
                                QtGui.QSizePolicy.Expanding,
                                QtGui.QSizePolicy.Expanding)
         FigureCanvas.updateGeometry(self)
2 Answers
Related