1. Znaczenie adnotacji na wykresach
Dlaczego warto dodawać podpisy, legendy i adnotacje do wykresów
Dzisiaj porozmawiamy o części wizualizacji danych tak samo ważnej jak same wykresy – adnotacjach. To jak odbiornik w telewizorze: niby wszystko jest, ale oglądanie jest trudne, ponieważ obraz nie zawsze jest jasny. Brak podpisów, legend i adnotacji może sprawić, że dane ożyją i zaczną mówić językiem zrozumiałym dla człowieka.
Możesz zapytać: czy podpisy i legendy są naprawdę tak ważne? Odpowiedź jest prosta: są one jak sól i pieprz dla wykresu. Bez nich Twój wykres może stać się trudny do odczytania, a sens danych może zostać zagubiony. Dzięki adnotacjom nadajemy wykresowi dodatkowe znaczenie i sprawiamy, że staje się bardziej intuicyjny.
Podpisy i legendy pomagają Twoim odbiorcom szybko zrozumieć, co widzą. Wyobraź sobie, że patrzysz na mapę skarbów bez żadnych wskazówek i ktoś prosi Cię, abyś od razu znalazł drogę do skarbu. To brzmi jak szaleństwo, prawda? To samo dzieje się z wykresami bez podpisów. Powinniśmy pomagać naszym odbiorcom, a nie komplikować im życie.
A teraz przyjrzyjmy się bardziej szczegółowo, jak dodać magię adnotacji do Twoich wykresów za pomocą Pythona i Matplotlib. Gotowi? No to zaczynamy!
2. Podpisy osi
Zarządzanie podpisami osi za pomocą xlabel, ylabel i title
Pierwszy krok – nazwy osi. Proces jest prosty jak dwa razy dwa. Korzystamy z funkcji xlabel()
i ylabel()
do dodawania podpisów do osi X
i Y
, odpowiednio. A do tytułu wykresu używamy title()
. Te funkcje sprawiają, że wykres staje się bardziej uporządkowany i czytelny. Oto prosty przykład:
import matplotlib.pyplot as plt
# Dane
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]
# Tworzenie wykresu
plt.plot(x, y, color='blue')
# Dodawanie podpisów
plt.xlabel('Czas (godziny)', color='red')
plt.ylabel('Odległość (km)', color='green')
plt.title('Wzrost odległości w czasie', color='gold')
# Wyświetlanie wykresu
plt.show()
Można również pokolorować tekst i wykres w ulubione kolory:
Dostosowywanie czcionki i wielkości podpisów
Aby wykres wyglądał bardziej atrakcyjnie, można zmienić wielkość, kolor i styl czcionki podpisów. W Matplotlib możesz to zrobić za pomocą parametrów fontsize
, fontweight
, color
i innych.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
plt.plot(x, y)
# Dostosowywanie tytułu i podpisów z parametrami
plt.title("Przykład wykresu", fontsize=16, fontweight="bold", color="navy")
plt.xlabel("Wartości X", fontsize=12, color="darkred")
plt.ylabel("Wartości Y", fontsize=12, color="darkred")
plt.show()
W tym przykładzie:
fontsize
ustawia wielkość czcionki.fontweight="bold"
sprawia, że tekst jest pogrubiony.color
zmienia kolor tekstu.
3. Wyświetlanie "legendy"
Dodawanie i dostosowywanie legendy za pomocą funkcji legend()
Legenda to nie tylko mit czy historia, ale także ważne narzędzie w arsenale Twojego wykresu. Wyjaśnia, co reprezentują linie czy słupki na wykresie, i umożliwia rozróżnienie kilku serii danych. Matplotlib sprawia, że to bardzo proste. Oto jak możesz dodać legendę do swojego wykresu:
# Dane
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 2, 3, 4, 5]
# Tworzenie wykresu
plt.plot(x, y1, label='Kwadrat liczby')
plt.plot(x, y2, label='Sama wielkość')
# Dodanie podpisów
plt.xlabel('Czas (godziny)')
plt.ylabel('Odległość (km)')
plt.title('Porównanie funkcji')
# Dodanie legendy
plt.legend(loc='upper left')
# Wyświetlanie wykresu
plt.show()
Wywołanie legend()
dodaje legendę w miejscu, które wskazałeś. Argument loc
można zastąpić wartością 'best', aby Python sam wybrał dogodną lokalizację (tak, sztuczna inteligencja jest tutaj również zaangażowana).
Pozycja legendy
Możesz zmienić pozycję legendy, używając parametru loc
. Na przykład:
loc="upper right"
— prawy górny róg (domyślnie).loc="upper left"
— lewy górny róg.loc="lower right"
— prawy dolny róg.loc="center"
— środek.
plt.legend(loc="upper left")
Dostosowywanie rozmiarów i kolorów legendy
Możesz dostosowywać wielkość czcionki i kolory legendy za pomocą parametrów fontsize
, facecolor
i edgecolor
.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 20, 25, 30]
y2 = [5, 10, 15, 20, 25]
plt.plot(x, y1, label="Linia 1", color="blue")
plt.plot(x, y2, label="Linia 2", color="green")
plt.title("Wykres z konfigurowalną legendą")
plt.xlabel("Wartości X")
plt.ylabel("Wartości Y")
# Dostosowywanie legendy
plt.legend(loc="upper left", fontsize=10, facecolor="lightgray", edgecolor="black")
plt.show()
4. Formatując osie
Matplotlib pozwala dostosować skalę, etykiety i zakres wartości osi, co może być przydatne do poprawienia interpretacji wykresu.
Zmiana zakresu osi
Funkcje xlim()
i ylim()
umożliwiają ustawienie minimalnych i maksymalnych wartości dla osi.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
plt.plot(x, y)
plt.xlabel("Wartości X")
plt.ylabel("Wartości Y")
plt.xlim(0, 6) # Zakres osi X od 0 do 6
plt.ylim(5, 35) # Zakres osi Y od 5 do 35
plt.show()
Ustawianie interwału etykiet
Za pomocą funkcji xticks()
i yticks()
można ustawić niestandardowe etykiety dla osi.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
plt.plot(x, y)
plt.xlabel("Wartości X")
plt.ylabel("Wartości Y")
# Ustawianie etykiet osi X
plt.xticks([1, 2, 3, 4, 5], ["Jeden", "Dwa", "Trzy", "Cztery", "Pięć"])
plt.show()
Dodawanie siatki na wykres
Siatka pomaga lepiej orientować się w wartościach na wykresie, szczególnie jeśli dane mają wiele punktów lub wartości.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
plt.plot(x, y)
plt.xlabel("Wartości X")
plt.ylabel("Wartości Y")
plt.grid(True) # Dodanie siatki
plt.show()
Za pomocą plt.grid(True)
dodaje się standardową siatkę. Można również dostosować jej styl, używając parametrów color
, linestyle
i linewidth
.
plt.grid(color="gray", linestyle="--", linewidth=0.5)
5. Dodawanie adnotacji na wykres
Adnotacje pozwalają wyróżnić ważne punkty lub wyjaśnienia na wykresie. Metoda annotate()
pomaga dodać tekst do określonego punktu na wykresie.
Dodawanie adnotacji
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
plt.plot(x, y)
plt.xlabel("Wartości X")
plt.ylabel("Wartości Y")
# Dodawanie adnotacji
plt.annotate("Maksimum", xy=(5, 30), xytext=(3, 30),
arrowprops=dict(facecolor="black", shrink=0.05))
plt.show()
W tym przykładzie:
xy=(5, 30)
wskazuje współrzędne punktu, który adnotujemy.xytext=(3, 30)
wskazuje pozycję tekstu.arrowprops
dodaje strzałkę wskazującą punkt.
6. Przykłady ulepszeń wykresów
Przejdźmy do praktyki! Zobaczmy, jak dodanie adnotacji poprawia wykres.
Załóżmy, że mamy wykres przedstawiający wzrost sprzedaży dwóch różnych produktów w ciągu miesięcy. Chcemy, by stał się bardziej zrozumiały i dodać potrzebne adnotacje.
import matplotlib.pyplot as plt
# Miesiące i sprzedaż
months = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec']
sales_product1 = [100, 120, 130, 150, 170, 190]
sales_product2 = [90, 110, 115, 140, 165, 180]
# Tworzenie wykresu
plt.plot(months, sales_product1, marker='o', label='Produkt 1')
plt.plot(months, sales_product2, marker='s', label='Produkt 2')
# Adnotowanie
plt.xlabel('Miesiące')
plt.ylabel('Sprzedaż (szt.)')
plt.title('Wzrost sprzedaży produktów')
plt.legend(loc='upper left')
# Konfiguracja adnotacji
for i, txt in enumerate(sales_product1):
plt.annotate(txt, (months[i], sales_product1[i]), textcoords="offset points", xytext=(0,10), ha='center')
for i, txt in enumerate(sales_product2):
plt.annotate(txt, (months[i], sales_product2[i]), textcoords="offset points", xytext=(0,10), ha='center')
# Wyświetlanie wykresu
plt.show()
Tak, dodaliśmy małe jasne liczby nad każdą datą! Takie adnotacje mogą okazać się zbawieniem przy analizie dużych ilości danych i punktów, gdzie każda liczba jest cenna.
No i mamy opanowane adnotowanie wykresów w Matplotlib. Te umiejętności przydadzą Ci się przy tworzeniu raportów i prezentacji danych, zwłaszcza gdy każde słowo waży więcej niż tysiąc liczb. Do przodu, rysuj, podpisuj i zmieniaj świat danych!
GO TO FULL VERSION