Je veux montrer le cadre sur cette figure. J'ai essayé l'exécution du code ci-dessous, mais il n'a pas fonctionné:Comment dessiner un cadre sur une figure matplotlib
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)
J'ai aussi essayé:
plt.tight_layout()
mais il génère cette erreur:
> 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
Votre aide serait appréciée , Je vous remercie.
EDIT: Voici le code de la toile:
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)
Il semble que vous ne tracez pas de graphique dans une figure orpheline matplotlib, mais dans le canevas d'une interface graphique. Nous avons besoin de plus d'informations. tight_layout est une méthode de figure pour étirer les axes dans le cadre de la figure, il ne s'agit pas des frontières. – Wli
J'ai ajouté le code de la toile, j'espère qu'il met plus de clarté. –
Pour quoi avez-vous besoin de la toile? Pourquoi ne pas le tracer en utilisant simplement plt.plot (...) – 2Obe