Klasa 3 LO · 30 lekcji Modelowanie matematyczne

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

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śćSymbolWartośćJednostkaSkąd się wzięłaRodzaj
Dzień tygodniad1…5dzieńplan lekcjidana
Obecniy28, 27, 30, 25, 29osobydziennik (albo lista)dana
Brakujące dni—nie interpolujemy weekendu—umowazałożenie
Odczyt z wykresu—np. dzień 4: 25 osóbosobywzrok + osiewynik

Rodzaj: dana z dokumentu lub pomiaru; założenie — świadome uproszczenie; parametr — gałka, którą kręcimy w wariantach; wynik — to, co model ma policzyć.

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

Zrób przynajmniej dwa. Wynik Excel i Python ma się zgadzać z kartką.

  1. Przepisz kod, uruchom, zrób zrzut albo okno z wykresem.
  2. Zmień dane na temperatury: [12, 14, 9, 11, 10]. Tytuł i oś Y: °C.
  3. Dodaj szósty dzień (obecni = 31). Nie psując długości list.
  4. Co się stanie, jeśli w obecni będzie o jedną liczbę za mało? Sprawdź i zapisz komunikat błędu.
Odpowiedzi (dopiero po samodzielnej pracy)
  1. Ma działać F5 / Run.
  2. xlabel Dzień, ylabel Temperatura (°C).
  3. obie listy długości 6.
  4. ValueError: x and y must have same first dimension…