Lekcja 07 · Warsztat
matplotlib: pierwszy wykres liniowy
Składnię Pythona znacie z innych lekcji. Tu uczymy się jednego: narysować liczby tak, żeby dało się je odczytać.
Po tej lekcji
- Importujesz matplotlib.pyplot i rysujesz plt.plot.
- Dajesz tytuł oraz opisy osi z jednostką.
- Zapisujesz, że bez tytułu wykres jest ozdobą, nie modelem.
Instalacja raz na stanowisku: python -m pip install matplotlib. W Thonny: Narzędzia → Zarządzaj pakietami.
Jaki model rysujemy
Wychowawca chce zobaczyć, jak w tygodniu 12 skakała obecność w 3A. Pytanie: w które dni było poniżej 27 osób? To nie jest jeszcze wzór — to model „dane + wykres z jednostką”. Bez tytułu i osi Y wykres nie odpowiada na pytanie.
Karta modelu: dane, założenia, parametry
| Wielkość | Symbol | Wartość | Jednostka | Skąd się wzięła | Rodzaj |
|---|---|---|---|---|---|
| Dzień tygodnia | d | 1…5 | dzień | plan lekcji | dana |
| Obecni | y | 28, 27, 30, 25, 29 | osoby | dziennik (albo lista) | dana |
| Brakujące dni | — | nie interpolujemy weekendu | — | umowa | założenie |
| Odczyt z wykresu | — | np. dzień 4: 25 osób | osoby | wzrok + osie | wynik |
import matplotlib.pyplot as plt
def wykres_linii(x, y, tytul, etykieta_x, etykieta_y):
plt.plot(x, y, marker="o")
plt.title(tytul)
plt.xlabel(etykieta_x)
plt.ylabel(etykieta_y)
plt.grid(True)
plt.show()
wykres_linii(
[1, 2, 3, 4, 5],
[28, 27, 30, 25, 29],
"Obecni w klasie 3A, tydzień 12",
"Dzień",
"Osoby",
)
# ten sam przepis, inne dane:
wykres_linii(
[1, 2, 3, 4, 5],
[12, 14, 9, 11, 10],
"Temperatura rano",
"Dzień",
"°C",
)
Dwie listy muszą mieć tę samą długość. Inaczej Python krzyczy — i słusznie.
marker="o" stawia kropki w punktach pomiaru. Bez nich linia bywa myląca, gdy dni jest mało.
Sprawdź się. Co musi być na wykresie modelu?
Ćwiczenia samodzielne
- Przepisz kod, uruchom, zrób zrzut albo okno z wykresem.
- Zmień dane na temperatury: [12, 14, 9, 11, 10]. Tytuł i oś Y: °C.
- Dodaj szósty dzień (obecni = 31). Nie psując długości list.
- Co się stanie, jeśli w
obecnibędzie o jedną liczbę za mało? Sprawdź i zapisz komunikat błędu.
Odpowiedzi (dopiero po samodzielnej pracy)
- Ma działać F5 / Run.
- xlabel Dzień, ylabel Temperatura (°C).
- obie listy długości 6.
- ValueError: x and y must have same first dimension…