it-swarm.com.de

Erstellen Sie mehr als ein Diagramm in derselben IPython Notebook-Zelle

Ich habe mein IPython Notebook mit gestartet

ipython notebook --pylab inline

Das ist mein Code in einer Zelle

df['korisnika'].plot()
df['osiguranika'].plot()

Dies funktioniert gut, es werden zwei Linien gezeichnet, aber auf dem gleichen Diagramm.

Ich möchte jede Linie in einem eigenen Diagramm zeichnen. Und es wäre toll, wenn die Charts nebeneinander und nicht nacheinander wären.

Ich weiß, dass ich die zweite Zeile in die nächste Zelle einfügen kann und dann zwei Diagramme bekomme. Aber ich möchte die Diagramme nahe beieinander haben, weil sie dieselbe logische Einheit darstellen.

70
WebOrCode

Machen Sie zuerst die mehreren Achsen und übergeben Sie sie an die Pandas plot-Funktion, wie:

fig, axs = plt.subplots(1,2)

df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])

Es gibt immer noch 1 Figur, aber mit zwei verschiedenen Parzellen nebeneinander.

74
Rutger Kassies

Sie können die show () - Funktion auch nach jedem Plot aufrufen. z.B

   plt.plot(a)
   plt.show()
   plt.plot(b)
   plt.show()
81
Tooblippe

Ein anderer Weg für Abwechslung. Dies ist zwar etwas weniger flexibel als die anderen. Leider erscheinen die Grafiken übereinander und nicht nebeneinander, wie Sie es in Ihrer ursprünglichen Frage gefordert haben. Aber es ist sehr knapp.

df.plot(subplots=True)

Wenn der Datenrahmen mehr als zwei Reihen enthält und Sie nur diese beiden plotten möchten, müssen Sie df durch df[['korisnika','osiguranika']] Ersetzen.

7
Luciano

Etwas wie das:

import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()

Beachten Sie, dass dies auch funktioniert, wenn Sie das Paket seaborn zum Plotten verwenden:

import matplotlib.pyplot as plt
import seaborn as sns
sns.barplot(... code for plot 1 ...) # plot 1
plt.show()
sns.barplot(... code for plot 2 ...) # plot 2
plt.show()
6
mgoldwasser

Ich weiß nicht, ob dies eine neue Funktionalität ist, aber dies wird in separaten Abbildungen dargestellt:

df.plot(y='korisnika')
df.plot(y='osiguranika')

während dies auf der gleichen Figur dargestellt wird: (genau wie der Code in der Operation)

df.plot(y=['korisnika','osiguranika'])

Ich habe diese Frage gefunden, weil ich die frühere Methode verwendet habe und wollte, dass sie auf der gleichen Figur dargestellt werden. Ihre Frage war also eigentlich meine Antwort.

1
steven