7.3 Wykres kolumnowy
Matura maj 2024 - Matura z informatyki: arkusze krok po kroku (Python)
Druga część zadania 7.3: wykres kolumnowy z biblioteki **matplotlib**. Podpis kolumny na osi X to nazwa miesiąca połączona z odmianą (tak wymaga polecenie), więc nazwy są długie: `plt.xticks(rotation=60)` je obraca, a `plt.tight_layout()` zostawia na nie miejsce. Za opis jest 1 pkt: tytuł, opis osi Y oraz miesiące i odmiany na osi X.
prices = {}
with open("cennik.txt", encoding="utf-8") as f:
for line in f:
variety, price = line.rstrip("\n").split("\t")
prices[variety] = float(price.replace(",", ".")) # cena z przecinkiem dziesiętnym
sales = []
with open("jablka_przyklad.txt", encoding="utf-8") as f:
for line in f:
day, variety, kind, nip, kg = line.rstrip("\n").split("\t")
sales.append((day, variety, kind, nip, int(kg)))
# 7.3 sprzedaż odmian w miesiącach (klucz: numer miesiąca i odmiana), potem najlepsza w miesiącu
MONTHS = ["styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień",
"wrzesień", "październik", "listopad", "grudzień"]
monthly = {}
for day, variety, kind, nip, kg in sales:
key = (int(day[5:7]), variety)
monthly[key] = monthly.get(key, 0) + kg
popular = {}
for (month, variety), kg in monthly.items():
if month not in popular or kg > popular[month][1]:
popular[month] = (variety, kg)
labels = [MONTHS[month - 1] + "-" + popular[month][0] for month in sorted(popular)]
values = [popular[month][1] for month in sorted(popular)]
print("7.3")
for label, value in zip(labels, values):
print(label, value)
# wykres kolumnowy: podpis każdej kolumny = miesiąc i odmiana
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5))
plt.bar(labels, values)
plt.xticks(rotation=60)
plt.xlabel("miesiąc i najpopularniejsza odmiana")
plt.ylabel("sprzedaż [kg]")
plt.title("Najpopularniejsze odmiany jabłek w miesiącach 2022 roku")
plt.tight_layout()
plt.show()Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.