0Pricing
Python Academy · Lekcja

Wykresy podrzędne i układy

Łącz wiele wykresów

Wykresy podrzędne i układy to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Dlaczego warto używać wielu wykresów

Często jeden wykres to za mało. Można chcieć porównać kilka widoków obok siebie albo podzielić zatłoczony wykres na mniejsze panele. Matplotlib nazywa to rozmieszczaniem wielu obiektów Axes wewnątrz jednej Figure.

Głównym narzędziem jest plt.subplots(rows, cols).

Siatka obiektów Axes

fig, axes = plt.subplots(2, 3) tworzy figurę z siatką 2 na 3, zapewniającą sześć obiektów Axes. Wynik axes jest tablicą dwuwymiarową, którą indeksuje się tak jak axes[0][1].

Łączna liczba paneli to po prostu liczba wierszy pomnożona przez liczbę kolumn.

rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
    for c in range(cols):
        print('panel at', (r, c))

Indeksowanie tablicy Axes

W przypadku jednego wiersza axes jest jednowymiarowe: należy używać axes[0] i axes[1]. W przypadku pełnej siatki jest dwuwymiarowe: axes[row][col].

W przypadku pojedynczego podwykresu indeksowanie nie jest w ogóle potrzebne.

Iterowanie po panelach

Przejrzysty wzorzec polega na spłaszczeniu siatki i wykonaniu pętli, która łączy każdy obiekt Axes z odpowiadającymi mu danymi. Pozwala to uniknąć powtarzania niemal identycznego kodu dla każdego panelu.

datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
    print('Plot dataset', name, 'on flat axes index', i)

Współdzielone osie

Gdy panele mają wspólną skalę, należy przekazać sharex=True lub sharey=True. Podwykresy korzystają wtedy ze wspólnego zakresu, co ułatwia uczciwe porównania i eliminuje zbędne etykiety podziałki.

To rozwiązanie idealnie nadaje się do szeregów czasowych ułożonych jeden nad drugim.

Rozmiar figury dla siatek

Siatka potrzebuje więcej miejsca niż pojedynczy wykres. Podczas wywoływania funkcji subplots należy ustawić figsize=(width, height) w calach. Praktyczna zasada mówi, aby skalować rozmiar wraz z liczbą kolumn i wierszy.

cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))

Odstępy między panelami

Panele mogą znajdować się zbyt blisko siebie. fig.tight_layout() automatycznie rozwiązuje większość takich przypadków. Aby uzyskać dokładniejszą kontrolę, należy użyć fig.subplots_adjust(wspace=0.4, hspace=0.4) do ustawienia odstępów poziomych i pionowych.

Większe wartości oznaczają więcej miejsca między podwykresami.

Nierówne układy za pomocą GridSpec

Nie każdy układ jest jednolitą siatką. GridSpec pozwala jednemu obiektowi Axes rozciągać się na wiele wierszy lub kolumn, na przykład tworząc szeroki wykres u góry i dwa mniejsze poniżej.

Najpierw definiuje się siatkę, a następnie wycina jej fragmenty tak jak z tablicy, aby umieścić poszczególne obiekty Axes.

Planowanie zakresów

Fragmenty GridSpec należy traktować jak zakresy. Wykres u góry rozciągający się na wszystkie kolumny to gs[0, :], a wykres w lewym dolnym rogu to gs[1, 0]. Zaplanowanie fragmentów najpierw na papierze pozwala uniknąć nieporozumień.

layout = {
    'header': '[0, :]   (full width)',
    'left':   '[1, 0]   (bottom left)',
    'right':  '[1, 1]   (bottom right)',
}
for name, slot in layout.items():
    print(name.ljust(7), slot)

Jedna figura, jedna historia

Figura z wieloma panelami nadal powinna przedstawiać jedną spójną historię. Należy użyć wspólnego fig.suptitle(), spójnych kolorów i wspólnych skal, aby panele były odczytywane jako całość, a nie przypadkowy kolaż.

Personalizacja poszczególnych paneli

Ponieważ każda komórka jest osobnym obiektem Axes, można ją personalizować niezależnie. axes[0][0].set_title('Sales') nadaje tytuł tylko panelowi w lewym górnym rogu, a axes[1][1].set_ylabel('Cost') opisuje tylko panel w prawym dolnym rogu.

Ta niezależność jest dokładnie tym, dzięki czemu styl obiektowy doskonale sprawdza się w przypadku siatek.

Szybki test

Proszę sprawdzić swoją znajomość układów wielopanelowych.

Podsumowanie

Mogą już Państwo łączyć wykresy:

  • plt.subplots(rows, cols) tworzy siatkę obiektów Axes
  • Elementy można indeksować za pomocą axes[row][col] albo spłaszczyć i przetwarzać w pętli
  • sharex/sharey wyrównują skale, a figsize określa rozmiar siatki
  • tight_layout i subplots_adjust zarządzają odstępami
  • GridSpec umożliwia tworzenie paneli rozciągających się na wiele komórek

Często zadawane pytania

Czy lekcja „Wykresy podrzędne i układy” jest bezpłatna?

Tak — pełny tekst „Wykresy podrzędne i układy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wykresy podrzędne i układy”?

Łącz wiele wykresów Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Wykresy podrzędne i układy”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Figury i osie
  2. Wykresy liniowe, słupkowe i punktowe
  3. Dostosowywanie wykresów
  4. Wykresy podrzędne i układy
← Powrót do Python Academy