2016-11-24 4 views
-1

Ich habe eine große ungelöste Frage über das matplotlib Python-Modul.Python Figur und Achsen Objekt

Wenn ich eine Figur [Figure1] genannt, mit 2 Achsen [Ax1, Ax2], und einem anderen Figur [Figure2], gibt es eine Funktion oder Methode, die mir das Ax1 Objekt aus Figure1 und neu zu zeichnen es auf das Figure2 Objekt exportieren kann?

Antwort

0

Im Allgemeinen sind Achsen an eine Figur gebunden. Der Grund ist, dass Matplotlib normalerweise einige Operationen im Hintergrund ausführt, damit sie in der Figur gut aussehen.

Es gibt some hacky ways around this, auch this one, aber der allgemeine Konsens scheint zu sein, dass man vermeiden sollte, Achsen zu kopieren.

Auf der anderen Seite muss dies kein Problem oder eine Einschränkung überhaupt sein.

Sie können jederzeit eine Funktion definieren, die das Plotten tut und verwenden diese auf mehrere Figuren wie so:

import matplotlib.pyplot as plt 

def plot1(ax, **kwargs): 
    x = range(5) 
    y = [5,4,5,1,2] 
    ax.plot(x,y, c=kwargs.get("c", "r")) 
    ax.set_xlim((0,5)) 
    ax.set_title(kwargs.get("title", "Some title")) 
    # do some more specific stuff with your axes 

#create a figure  
fig, (ax1, ax2) = plt.subplots(1,2) 
# add the same plot to it twice 
plot1(ax1) 
plot1(ax2, c="b", title="Some other title") 
plt.savefig(__file__+".png") 

plt.close("all") 

# add the same plot to a different figure 
fig, ax1 = plt.subplots(1,1) 
plot1(ax1) 
plt.show() 
Verwandte Themen