[Python] Zeichnen mehrerer Diagramme mit Matplotlib

Zeigen Sie links und rechts zwei Grafiken an.


import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)

fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))

axL.plot(t, x1, linewidth=2)
axL.set_title('sin')
axL.set_xlabel('t')
axL.set_ylabel('x')
axL.set_xlim(-np.pi, np.pi)
axL.grid(True)

axR.plot(t, x2, linewidth=2)
axR.set_title('cos')
axR.set_xlabel('t')
axR.set_ylabel('x')
axR.set_xlim(-np.pi, np.pi)
axR.grid(True)

fig.show()

multiplot_01.png

Achsenanteil

Bei der Anzeige mehrerer Diagramme kann die Freigabe verwendet werden, wenn das Festlegen der X-Achseneinstellungen für alle Diagramme schwierig ist. Setzen Sie einfach sharex = True als Argument für Unterzeichnungen. Ai

teilen verfügbar

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi*2, np.pi*2, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)

fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4), sharex=True)

axL.plot(t, x1, linewidth=2)
axL.set_title('sin')
axL.set_xlabel('t')
axL.set_ylabel('x')
axL.set_xlim(-np.pi, np.pi)
axL.grid(True)

axR.plot(t, x2, linewidth=2)
axR.set_title('cos')
axR.set_xlabel('t')
axR.set_ylabel('x')
axR.grid(True)

fig.show()

20160220_g1.png

kein Anteil

20160220_g2.png

Mach es etwas kompliziert.

Wenn Sie normalerweise zwei Diagramme in der ersten Spalte anzeigen und alle Diagramme in der zweiten Spalte verwenden möchten, um ein langes Diagramm anzuzeigen, können Sie subplot2grid wie unten gezeigt verwenden.

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig = plt.figure(figsize=(10,8))
ax1 = plt.subplot2grid((2,2), (0,0))
ax2 = plt.subplot2grid((2,2), (0,1))
ax3 = plt.subplot2grid((2,2), (1,0), colspan=2)

ax1.plot(t, x1, linewidth=2)
ax1.set_title('sin')
ax1.set_xlabel('t')
ax1.set_ylabel('x')
ax1.set_xlim(-np.pi, np.pi)
ax1.grid(True)

ax2.plot(t, x2, linewidth=2)
ax2.set_title('cos')
ax2.set_xlabel('t')
ax2.set_ylabel('x')
ax2.set_xlim(-np.pi, np.pi)
ax2.grid(True)

ax3.plot(t, x3, linewidth=2)
ax3.set_title('sin+cos')
ax3.set_xlabel('t')
ax3.set_ylabel('x')
ax3.set_xlim(-np.pi, np.pi)
ax3.grid(True)

fig.show()

multiplot_02.png

Eine andere Option ist die Verwendung von matplotlib.gridspec. Geben Sie in diesem Fall den verwendeten Teil des zweidimensionalen Arrays an, das von gridspec.Gridspec (xxx, yyy) erhalten wurde, und verwenden Sie ihn als Argument für die Unterzeichnung. Zum Beispiel, wenn Sie oben links verwenden möchten

gs = gridspec.GridSpec(2,2)
ax1 = plt.subplot(gs[0,0])

Wird sein.

Wenn Sie die gesamte erste Zeile verwenden möchten,

ax2 = plt.subplot(gs[1,:]) 

Wird sein.

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)

x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig = plt.figure(figsize=(10,8))
gs = gridspec.GridSpec(2,2)

ax1 = plt.subplot(gs[0,0])
ax2 = plt.subplot(gs[0,1])
ax3 = plt.subplot(gs[1,:])

ax1.plot(t, x1, linewidth=2)
ax1.set_title('sin')
ax1.set_xlabel('t')
ax1.set_ylabel('x')
ax1.set_xlim(-np.pi, np.pi)
ax1.grid(True)

ax2.plot(t, x2, linewidth=2)
ax2.set_title('cos')
ax2.set_xlabel('t')
ax2.set_ylabel('x')
ax2.set_xlim(-np.pi, np.pi)
ax2.grid(True)

ax3.plot(t, x3, linewidth=2)
ax3.set_title('sin+cos')
ax3.set_xlabel('t')
ax3.set_ylabel('x')
ax3.set_xlim(-np.pi, np.pi)
ax3.grid(True)

fig.show()

Machen Sie ein Leerzeichen mit Nebenhandlungen

Wenn für den durch Unterzeichnungen erstellten Rahmen nur wenige Diagramme vorhanden sind, wird die Achse ('Aus') auf den Bereich angewendet, den Sie nicht zeichnen möchten.

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(-np.pi, np.pi, 1000)


x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = x1 + x2

fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(10,8))


axes[0,0].plot(t, x1, linewidth=2)
axes[0,0].set_title('sin')
axes[0,0].set_xlabel('t')
axes[0,0].set_ylabel('x')
axes[0,0].set_xlim(-np.pi, np.pi)
axes[0,0].grid(True)

axes[0,1].plot(t, x2, linewidth=2)
axes[0,1].set_title('cos')
axes[0,1].set_xlabel('t')
axes[0,1].set_ylabel('x')
axes[0,1].set_xlim(-np.pi, np.pi)
axes[0,1].grid(True)

axes[1,0].plot(t, x3, linewidth=2)
axes[1,0].set_title('sin+cos')
axes[1,0].set_xlabel('t')
axes[1,0].set_ylabel('x')
axes[1,0].set_xlim(-np.pi, np.pi)
axes[1,0].grid(True)

axes[1,1].axis('off')

download (67).png

Ich bezog mich auf Folgendes http://matplotlib.org/examples/pylab_examples/subplots_demo.html http://matplotlib.org/users/recipes.html

Recommended Posts

[Python] Zeichnen mehrerer Diagramme mit Matplotlib
Zeichnen Sie einfach Diagramme mit matplotlib
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Wie man mit matplotlib mehrere Figuren betitelt
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Animieren Sie mehrere Diagramme mit matplotlib
So zeichnen Sie mit matplotlib ein Balkendiagramm, das mehrere Serien zusammenfasst
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Erste Schritte mit Python
So berechnen Sie das Datum mit Python
Zeichne Riapnov Fractal mit Python, matplotlib
So zeichnen Sie ein Diagramm mit Matplotlib
So arbeiten Sie mit BigQuery in Python
Wie man einen Taschentest mit Python macht
So zeigen Sie Python-Japanisch mit Lolipop an
Wie man mit Python-Flüchen Japanisch eingibt
So installieren Sie Python3 mit Docker Centos
Zwei Möglichkeiten, mit matplotlib mehrere Grafiken in einem Bild anzuzeigen
So weisen Sie der Matplotlib-Farbleiste mehrere Werte zu
Hochladen mit Heroku, Flask, Python, Git (4)
Wie man Spaß am Programmieren mit Minecraft hat (Ruby, Python)
[REAPER] Wie man Reascript mit Python spielt
[Kleine Geschichte] So speichern Sie Matplotlib-Diagramme in einem Stapel mit Jupyter
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
So installieren Sie Python
So zeichnen Sie ein 2-Achsen-Diagramm mit Pyplot
Zeichnen Sie mehrere Diagramme mit Matplotlib-Figuren und -Achsen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Ich möchte mehrere Bilder mit matplotlib anzeigen.
[Python] Wie man Excel-Dateien mit Pandas liest
So beschneiden Sie ein Bild mit Python + OpenCV
So installieren Sie Python
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Heatmap von Python + matplotlib
So legen Sie Attribute mit Mock of Python fest
Wie zeichnet man eine vertikale Linie auf einer Heatmap, die mit Python Seaborn gezeichnet wurde?
Wie benutzt man Matplotlib?
So messen Sie die Ausführungszeit mit Python Teil 1
Wie man tkinter mit Python in Pyenv benutzt
So zeigen Sie Bilder kontinuierlich mit matplotlib Memo an
[Python] Umgang mit japanischen Zeichen mit openCV
[Python] Erwähnen Sie mit der Slack-API mehrere Personen
[Python] Vergleichen von Datum und Uhrzeit mit der hinzugefügten Zeitzone
So messen Sie die Ausführungszeit mit Python Part 2
So geben Sie mit der Indexmethode mehrere Indizes zurück
[Python] Passen Sie Colormap an, wenn Sie Diagramme mit matplotlib zeichnen
[Python-Tipps] So rufen Sie mehrere Schlüssel mit dem Maximalwert aus dem Wörterbuch ab
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
So schreiben Sie in Python die Verkettung von Zeichenfolgen in mehrere Zeilen
So kratzen Sie Bilddaten von Flickr mit Python
So führen Sie eine Hash-Berechnung mit Salt in Python durch
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Hochladen mit Heroku, Flask, Python, Git (Teil 3)
So führen Sie Tests zusammen mit Python unittest aus
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
Verwendung des interaktiven Python-Modus mit Git Bash