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:
fontsizeustawia wielkość czcionki.fontweight="bold"sprawia, że tekst jest pogrubiony.colorzmienia 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.arrowpropsdodaje 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