Se utilizzo il backend Agg
, non riesco a mantenere le finestre delle immagini aperte con show()
(indipendentemente dallo block=True
o meno) --- si chiudono virtualmente immediatamente. Se io non uso Agg
, allora ottengo l'avvertimento: codice dipython matplotlib Agg rispetto al plottaggio interattivo e tight_layout
/Library/Python/2.7/site-packages/matplotlib-1.2.0-py2.7-macosx-10.8-intel.egg/matplotlib/tight_layout.py:225: UserWarning: tight_layout : falling back to Agg renderer warnings.warn("tight_layout : falling back to Agg renderer")
Esempio:
import matplotlib as mpl
mpl.use('Agg') # With this line = figure disappears; without this line = warning
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
mu, sigma = 0, 0.5
x = np.linspace(-3, 3, 100)
plt.plot(x, mlab.normpdf(x, mu, sigma))
fig.tight_layout()
plt.show()
Esiste un back-end o di metodologia diversa dovrei usare?
Qual è il tuo back-end predefinito? Se esegui "import matplotlib come mpl' e poi" mpl.get_backend() ", cosa ottieni? Questo sarà il back-end che usa quando non si specifica "Agg", e si potrebbe essere in grado di ottenere ciò che si desidera passando a un back-end diverso da uno di questi due. – BrenBarn
@zhermes: hai finalmente trovato un lavoro. Sono di fronte allo stesso problema. – nia
La soluzione non soddisfacente è rimuovere 'mpl.use ('Agg')', e usare 'fig.set_tight_layout (True)' invece di 'fig.tight_layout()' come suggerito da @FelipeCorreia – DilithiumMatrix