Ich habe eine Funktion, die pyplot.plt
so hüllt ich schnell Graphen mit oft verwendeten Standardwerte erstellen:Matplotlib ein Grundstück Objekt zurückkehr
def plot_signal(time, signal, title='', xlab='', ylab='',
line_width=1, alpha=1, color='k',
subplots=False, show_grid=True, fig_size=(10, 5)):
# Skipping a lot of other complexity here
f, axarr = plt.subplots(figsize=fig_size)
axarr.plot(time, signal, linewidth=line_width,
alpha=alpha, color=color)
axarr.set_xlim(min(time), max(time))
axarr.set_xlabel(xlab)
axarr.set_ylabel(ylab)
axarr.grid(show_grid)
plt.suptitle(title, size=16)
plt.show()
Es gibt jedoch Zeiten, in denen ich die Rückkehr der Lage sein wollen, würde plotten, damit ich manuell Dinge für ein bestimmtes Diagramm hinzufügen/bearbeiten kann. Zum Beispiel möchte ich in der Lage sein, die Achsenbeschriftungen zu ändern, oder eine zweite Linie auf dem Grundstück hinzuzufügen nach Aufruf der Funktion:
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plot = plot_signal(np.arange(len(x)), x)
plot.plt(y, 'r')
plot.show()
ich ein paar Fragen zu diesem gesehen habe (How to return a matplotlib.figure.Figure object from Pandas plot function? und AttributeError: 'Figure' object has no attribute 'plot') und als ein Ergebnis, das ich versucht habe folgendes am Ende der Funktion der Zugabe:
return axarr
return axarr.get_figure()
return plt.axes()
Doch sie alle liefern einen ähnlichen Fehler: AttributeError: 'AxesSubplot' object has no attribute 'plt'
Was ist der richtige Weg, um ein Grundstück Objekt zurückgeben, damit es später bearbeitet werden können?
Haben Sie versucht, 'fig = plt.gcf()' zurückzukehren? –
Hier ist alles korrekt, außer dass "plot.plt()' anstelle von 'plot.plot()' aufgerufen wird. Dummer Fehler; kann jedem passieren :) –