wake-up-neo.net

Was bedeutet das Argument in matplotlib in fig.add_subplot (111)?

Manchmal stoße ich auf Code wie diesen:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()

Was produziert:

Example plot produced by the included code

Ich habe die Dokumentation wie verrückt gelesen, kann aber keine Erklärung für den 111 finden. manchmal sehe ich einen 212.

Was bedeutet das Argument von fig.add_subplot()?

386

Dies sind Subplot-Rasterparameter, die als einzelne Ganzzahl codiert sind. Beispielsweise bedeutet "111" "1x1-Gitter, erste Unterzeichnung" und "234" bedeutet "2x3-Gitter, 4. Unterzeichnung".

Ein alternatives Formular für add_subplot(111) ist add_subplot(1, 1, 1).

379
Constantin

Ich denke, das lässt sich am besten durch folgendes Bild erklären:

enter image description here

Um das obige zu initialisieren, würde man Folgendes eingeben:

import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(221)   #top left
fig.add_subplot(222)   #top right
fig.add_subplot(223)   #bottom left
fig.add_subplot(224)   #bottom right 
plt.show()
437
SaiyanGirl

Die Antwort von Constantin ist genau, aber für mehr Hintergrund wird dieses Verhalten von Matlab übernommen. 

Das Verhalten von Matlab wird in der Matlab-Dokumentation im Abschnitt Abbildung einrichten - Mehrere Diagramme pro Abbildung anzeigen erläutert.

subplot (m, n, i) zerlegt das Figurenfenster in eine m-by-n-Matrix von kleinem Subplots und wählt das Subplot für das aktuelle Diagramm aus. Die Handlungen sind in der oberen Reihe des Figurenfensters nummeriert, dann die zweite Reihe und so weiter.

34
DaveTM

Meine Lösung ist

fig = plt.figure()
fig.add_subplot(1, 2, 1)   #top and bottom left
fig.add_subplot(2, 2, 2)   #top right
fig.add_subplot(2, 2, 4)   #bottom right 
plt.show()

 2x2 grid with 1 and 3 merge

9
yoonghm

fig.add_subplot(ROW,COLUMN,POSITION)

  • ROW = Anzahl der Zeilen
  • COLUMN = Anzahl der Spalten
  • POSITION = Position des Graphen, den Sie zeichnen

Beispiele

`fig.add_subplot(111)` #There is only one subplot or graph  
`fig.add_subplot(211)`  *and*  `fig.add_subplot(212)` 

Es gibt insgesamt 2 Zeilen, 1 Spalte, daher können 2 Untergraphen gezeichnet werden. Sein Standort ist 1.. Es gibt insgesamt 2 Zeilen, 1 Spalte, daher können 2 Untergraphen gezeichnet werden. Seine Position ist 2.

7

 enter image description here 

import matplotlib.pyplot as plt
plt.figure(figsize=(8,8))
plt.subplot(3,2,1)
plt.subplot(3,2,3)
plt.subplot(3,2,5)
plt.subplot(2,2,2)
plt.subplot(2,2,4)

Der erste Code erstellt die erste Teilzeichnung in einem Layout mit 3 Zeilen und 2 Spalten.

Die drei Diagramme in der ersten Spalte bezeichnen die 3 Zeilen. Der zweite Plot befindet sich direkt unter dem ersten Plot in derselben Spalte und so weiter.

Die letzten beiden Darstellungen haben Argumente (2, 2), die angeben, dass die zweite Spalte nur zwei Zeilen enthält und die Positionsparameter zeilenweise verschoben werden.

3
Pritz