Je suis en train d'utiliser pandas pour générer un graphique à partir d'une dataframe, que je voudrais enregistrer dans un fichier :
dtf = pd.DataFrame.from_records(d,columns=h)
fig = plt.figure()
ax = dtf2.plot()
ax = fig.add_subplot(ax)
fig.savefig('~/Documents/output.png')
Il semble que la dernière ligne, en utilisant savefig de matplotlib, devrait faire l'affaire. Mais ce code produit l'erreur suivante :
Traceback (most recent call last):
File "./testgraph.py", line 76, in
ax = fig.add_subplot(ax)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/figure.py", line 890, in add_subplot
assert(a.get_figure() is self)
AssertionError
Alternativement, essayer d'appeler savefig directement sur le plot produit également une erreur :
dtf2.plot().savefig('~/Documents/output.png')
File "./testgraph.py", line 79, in
dtf2.plot().savefig('~/Documents/output.png')
AttributeError: 'AxesSubplot' object has no attribute 'savefig'
Je pense que je dois d'une manière ou d'une autre ajouter le subplot retourné par plot() à une figure afin d'utiliser savefig. Je me demande également si cela a peut-être à voir avec le magic derrière la classe AxesSubPlot.
EDIT:
le code suivant fonctionne (sans erreur), mais me laisse avec une image de page blanche....
fig = plt.figure()
dtf2.plot()
fig.savefig('output.png')
EDIT 2: Le code ci-dessous fonctionne également très bien
dtf2.plot().get_figure().savefig('output.png')