python matplotlib Agg vs. interaktive Plotten und tight_layout

Nutzen, wenn ich die Agg backend, ich bin nicht in der Lage zu halten Bild Fenster öffnen, mit show() (unabhängig von block=True oder nicht)---Sie schließen einfach praktisch sofort. Wenn ich nicht verwenden Agg, dann bekomme ich die Warnung:

/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")

Beispielcode:

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()

Ist es ein anderes backend oder Verfahren sollte ich verwenden?

  • Was ist Ihre Standard-backend? Wenn Sie import matplotlib as mpl und dann mpl.get_backend(), whad Sie bekommen? Dies wird das backend verwendet wird, wenn Sie nicht angeben, "Agg", und Sie können in der Lage sein zu bekommen, was Sie wollen, durch den Wechsel zu einem anderen backend-entweder der beiden.
  • hast du endlich eine Arbeit um. Ich bin vor dem gleichen problem.
  • Die unbefriedigender workaround ist, zu entfernen mpl.use('Agg'), und verwenden fig.set_tight_layout(True) statt fig.tight_layout() wie vorgeschlagen von @FelipeCorreia
Schreibe einen Kommentar