0Pricing
Python Academy · Lekcja

Figury i osie

Poznaj model tworzenia wykresów

Figury i osie to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 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.

Model tworzenia wykresów

Matplotlib to podstawowa biblioteka do tworzenia wykresów w języku Python. Aby dobrze z niej korzystać, trzeba zrozumieć jej dwupoziomowy model: obiekty Figure i Axes.

Figure to całe okno lub strona, na której rysowane są wszystkie elementy. Axes to pojedynczy wykres znajdujący się w obiekcie Figure, z własnym układem współrzędnych x i y.

  • Jeden obiekt Figure może zawierać wiele obiektów Axes
  • To w każdym obiekcie Axes znajdują się właściwe dane

Figure a Axes i Axis

Trzy terminy łatwo pomylić:

  • Figure to cały obraz, czyli kontener
  • Axes to pojedynczy obszar wykresu (zwróć uwagę na pisownię — nie jest to liczba mnoga od axis)
  • Axis to oś x lub oś y, czyli podziałka liczbowa wewnątrz obiektu Axes

Obiekt Figure zawiera więc obiekty Axes, a każdy obiekt Axes zawiera dwa (lub trzy) obiekty Axis.

Tworzenie obiektu Figure i Axes

Zalecanym sposobem rozpoczęcia pracy jest użycie plt.subplots(). Jedno wywołanie zwraca obiekt Figure i obiekt Axes.

Sam model jest łatwy do zrozumienia nawet bez renderowania. W tym przykładzie symulujemy znaczenie tych obiektów.

fig = {'type': 'Figure', 'axes': []}
ax = {'type': 'Axes', 'parent': 'Figure'}
fig['axes'].append(ax)
print('Figure holds', len(fig['axes']), 'axes')
print('Axes parent is the', ax['parent'])

Interfejs pyplot

Matplotlib oferuje dwa style pracy. Styl pyplot (oparty na stanie) korzysta z plt.plot() i automatycznie śledzi bieżący obiekt Figure. Styl obiektowy korzysta jawnie z ax.plot().

W przypadku wszystkiego, co wykracza poza szybki szkic, preferuj styl obiektowy. Jest przejrzystszy, gdy używasz wielu obiektów Axes.

Dlaczego styl obiektowy jest lepszy

Gdy wywołujesz plt.title('X'), tytuł zostaje zastosowany do tego obiektu Axes, który akurat jest bieżący. Przy wielu wykresach staje się to niejednoznaczne.

W przypadku ax.set_title('X') nie ma miejsca na domysły: metoda działa dokładnie na wskazanym przez Ciebie obiekcie Axes.

Układy współrzędnych

Każdy obiekt Axes odwzorowuje wartości danych na pozycje na ekranie. Współrzędne danych określają znaczenie liczb, a obiekt Axes skaluje je tak, aby pasowały do obszaru rysowania.

To odwzorowanie można opisać za pomocą zwykłej matematyki.

data_min, data_max = 0, 100
pixel_min, pixel_max = 0, 400

def to_pixels(value):
    frac = (value - data_min) / (data_max - data_min)
    return pixel_min + frac * (pixel_max - pixel_min)

for v in [0, 25, 50, 100]:
    print('data', v, '->', to_pixels(v), 'px')

Rozmiar Figure i DPI

Obiekt Figure ma rozmiar wyrażony w calach oraz rozdzielczość wyrażoną w punktach na cal (DPI). Rozmiar w pikselach jest iloczynem tych dwóch wartości.

Na przykład obiekt Figure o rozmiarze 6 × 4 cala przy rozdzielczości 100 DPI ma 600 × 400 pikseli.

width_in, height_in = 6, 4
dpi = 100
print('Pixels:', width_in * dpi, 'x', height_in * dpi)

Ręczne dodawanie obiektów Axes

Oprócz plt.subplots() można dodać obiekt Axes w dokładnie określonym prostokącie za pomocą fig.add_axes([left, bottom, width, height]), gdzie każda wartość jest ułamkiem rozmiaru Figure z przedziału od 0 do 1.

W ten sposób tworzy się wykresy osadzone i niestandardowe układy.

Bieżący obiekt Figure

Pyplot przechowuje rejestr obiektów Figure oraz wskaźnik na bieżący obiekt. plt.gcf() pobiera bieżący obiekt Figure, a plt.gca() pobiera bieżący obiekt Axes.

Elementy te służą głównie do obsługi stylu opartego na stanie. W kodzie obiektowym zamiast tego przechowuje się własne referencje.

Wyświetlanie i zamykanie

plt.show() renderuje wszystkie otwarte obiekty Figure w oknie. plt.close() zwalnia obiekt Figure. W skryptach generujących wiele obiektów Figure ich zamykanie zapobiega nadmiernemu zużyciu pamięci.

W notatnikach obiekt Figure jest automatycznie wyświetlany bezpośrednio w komórce.

Lista kontrolna

Zanim cokolwiek narysują Państwo, proszę odpowiedzieć na następujące pytania:

  • Ilu figur potrzebuję?
  • Ile obiektów Axes przypada na każdą figurę?
  • Do którego obiektu Axes należy każdy fragment danych?

Odpowiedzi na te pytania sprawiają, że obiektowe API staje się intuicyjne.

Szybki test

Proszę sprawdzić swoją znajomość modelu figury i osi.

Podsumowanie

Poznali Państwo podstawowy model Matplotlib:

  • Figure to kontener o rozmiarze wyrażonym w calach pomnożonych przez DPI
  • Axes to pojedynczy wykres z własnym układem współrzędnych
  • Axis to oś liczbowa x lub y
  • Należy preferować styl obiektowy z użyciem fig, ax = plt.subplots()

Dzięki temu modelowi mentalnemu każda kolejna personalizacja staje się przewidywalna.

Często zadawane pytania

Czy lekcja „Figury i osie” jest bezpłatna?

Tak — pełny tekst „Figury i osie” 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 „Figury i osie”?

Poznaj model tworzenia 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 1 z 4.

Ile czasu zajmuje lekcja „Figury i osie”?

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