Czasami natrafiam na kod taki jak ten:
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()
Który produkuje:
Czytałem dokumentację jak szalony, ale nie mogę znaleźć wyjaśnienia 111
. czasami widzę 212
.
Co oznacza argument fig.add_subplot()
?
python
matplotlib
figure
z przyjemnością
źródło
źródło
subplots()
metody.subplot()
jest tutaj isubplots()
jest tutaj .Myślę, że najlepiej to wyjaśnić następującym obrazem:
Aby zainicjować powyższe, należy wpisać:
źródło
1.5.0
) i wydaje się, że jest to tylko Matlab. (Uwaga: Matplotlib ma inne możliwości osiągnięcia tego zachowania, np. Gridspec )Odpowiedź Constantina jest na miejscu, ale dla większego tła to zachowanie jest dziedziczone z Matlaba.
Zachowanie Matlaba wyjaśniono w rozdziale Konfiguracja rysunku - Wyświetlanie wielu wykresów na rysunek w dokumentacji Matlaba.
źródło
Moje rozwiązanie to
źródło
Pierwszy kod tworzy pierwszą podplot w układzie, który ma 3 wiersze i 2 kolumny.
Trzy wykresy w pierwszej kolumnie oznaczają 3 rzędy. Drugi wykres znajduje się tuż poniżej pierwszego wykresu w tej samej kolumnie i tak dalej.
Ostatnie dwa wykresy mają argumenty
(2, 2)
wskazujące, że druga kolumna ma tylko dwa rzędy, parametry pozycji przesuwają się w rzędzie.źródło
fig.add_subplot(ROW,COLUMN,POSITION)
Przykłady
Łącznie są 2 wiersze, 1 kolumna, dlatego można wykreślić 2 wykresy podrzędne. Jego lokalizacja jest 1.. Łącznie są 2 wiersze, 1 kolumna, dlatego można wykreślić 2 wykresy podrzędne. Jego lokalizacja to 2. miejsce
źródło
Metoda add_subplot () ma kilka podpisów wywołania:
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<- od 3.1.0Połączenia 1 i 2:
Połączenia 1 i 2 osiągają to samo co inne (do limitu wyjaśnionego poniżej). Pomyśl o nich jako o pierwszym określeniu układu siatki za pomocą pierwszych 2 liczb (2x2, 1x8, 3x4 itd.), Np .:
Oba tworzą układ podplotów (3 x 4 = 12) podplotów w 3 rzędach i 4 kolumnach. Trzecia liczba każdego wywołania, który wskazuje powrót do osi przedmiotu, od 1 u góry na lewo, zwiększając w prawo .
Ten kod ilustruje ograniczenia korzystania z połączenia 2:
Możesz zobaczyć z wywołaniem 1 na LHS , możesz zwrócić dowolny obiekt osi, jednak przy wywołaniu 2 na RHS możesz powrócić tylko do indeksu = 9 renderujących podploty j), k) i l) niedostępne przy użyciu tego wywołania.
To znaczy ilustruje ten punkt z dokumentacji:
Zadzwoń 3
Zadzwoń 4 (od 3.1.0):
tj. odtworzenie połączenia
fig.add_subplot(111)
w pytaniu.źródło