1. Sposoby zapisywania wykresów
Dzisiaj nie tylko będziemy tworzyć piękne wykresy, ale również zamieniać je w świetne obrazy, które można wstawić do swoich raportów, prezentacji lub albumów na okazję: "Zobacz, zrobiłem to!". Kto wie, może Twój wykres stanie się wiralowy w mediach społecznościowych i wreszcie zdobędziesz swoje piętnaście minut sławy!
Jak w każdym dobrym kulinarnym show, gdzie wybieramy przepis, zaczniemy od przeglądu różnych formatów plików, w których można zapisać wykresy. Każdy format ma swoje cechy, a zrozumienie tych niuansów pomoże Ci wybrać odpowiednie "danie" do swojego "menu". Oto niektóre z nich:
- PNG (Portable Network Graphics): jeden z najpopularniejszych formatów dla grafiki webowej. Charakteryzuje się dobrą kompresją bez utraty jakości, przezroczystością i dobrą obsługą w większości aplikacji.
- PDF (Portable Document Format): idealny do osadzania w dokumentach. Jest formatem wektorowym, co oznacza, że zachowuje ostrość obrazu przy skalowaniu.
- SVG (Scalable Vector Graphics): kolejny format wektorowy, świetnie nadaje się do internetu. Obsługuje interaktywność i animacje.
- JPEG (Joint Photographic Experts Group): zazwyczaj używany do zdjęć, ponieważ ma stratną kompresję, która może nie być odpowiednia do wykresów z tekstem.
Teraz, gdy rozumiemy, jakie mamy opcje, zajmijmy się zapisywaniem wykresów za pomocą funkcji
savefig()
z biblioteki Matplotlib.
Zapisywanie wykresów za pomocą savefig()
Matplotlib sprawia, że proces zapisywania wykresów jest prawie bezbolesny, jak aktualizacja OS na Twoim telefonie (o ile wszystko pójdzie zgodnie z planem). Przyjrzyjmy się, jak to wygląda.
import matplotlib.pyplot as plt
# Załóżmy, że mamy prosty wykres
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, label='Liczby pierwsze')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Liniowy wykres liczb pierwszych')
plt.legend()
# Zapisywanie wykresu do pliku
plt.savefig('primes.png')
Ten kod tworzy plik primes.png
w bieżącym katalogu. I to wszystko! Nie ma potrzeby
zapamiętywania zaklęć ani składania ofiar cyfrowym bogom. Po prostu zamiast plt.show()
wywołujesz
plt.savefig('ścieżka/nazwa_pliku')
i gotowe!
2. Ustawianie parametrów zapisywania
Oczywiście samo zapisanie wykresu to za mało — chcemy, aby wyglądał fantastycznie! Jak mówi stare przysłowie: "Jeśli wykres ma słabą jakość, nikt go nie zauważy". Albo coś w tym stylu.
Ustawianie jakości i rozdzielczości obrazu
Aby stworzyć obrazy o wysokiej jakości, można dostosować parametr dpi
(dots per inch), który określa gęstość pikseli na obrazie. Im wyższa wartość, tym bardziej
szczegółowy obraz. Dla internetu zwykle wystarczy 72 dpi, a do druku — 300 dpi lub więcej.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]
plt.plot(x, y)
# Zapisywanie wykresu w wysokiej rozdzielczości
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()
Tutaj dpi=300
podnosi jakość obrazu, czyniąc go bardziej wyraźnym,
co jest szczególnie przydatne w raportach i wydrukach.
Zapisywanie bez granic i dodatkowych marginesów
Domyślnie Matplotlib dodaje marginesy wokół wykresu, co nie zawsze jest wygodne do wstawiania w raport.
Aby zapisać obraz bez marginesów, użyj parametru bbox_inches="tight"
.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
# Zapisywanie wykresu bez marginesów
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()
Parametr bbox_inches="tight"
usuwa zbędne odstępy wokół wykresu, co
pozwala uzyskać bardziej kompaktowy obraz.
Ustawianie rozmiarów wykresu przed zapisem
Czasami trzeba zapisać wykres o określonych wymiarach (np. do prezentacji lub publikacji internetowych).
Za pomocą figure(figsize=(szerokość, wysokość))
można ustawić
rozmiar wykresu w calach.
import matplotlib.pyplot as plt
# Ustawianie rozmiarów wykresu
plt.figure(figsize=(10, 5)) # 10 cali szerokości i 5 wysokości
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
plt.title("Wykres z ustawionym rozmiarem")
# Zapisywanie wykresu z określonymi wymiarami
plt.savefig("custom_size_plot.png")
plt.show()
W tym przykładzie wykres jest zapisywany z rozmiarem 10x5 cali. Rozmiary można dostosować do konkretnych potrzeb raportu lub prezentacji.
Dodatkowe parametry savefig()
transparent=True
: Zapisuje obraz z przezroczystym tłem, co jest przydatne przy wstawianiu na kolorowe lub przezroczyste tła.pad_inches
: Określa dodatkowe marginesy wokół wykresu. Używane razem zbbox_inches
.format
: Wskazuje format pliku, w którym zapisujemy: pdf, png, jpg, ...
Jeśli parametr format
nie jest określony, metoda savefig()
spróbuje go
określić na podstawie nazwy pliku.
# Zapisywanie wykresu z ustawieniem parametrów
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)
Teraz Twój wykres będzie wyglądał tak szczegółowo, że każdy, kto na niego spojrzy, od razu powie: "Wow, naprawdę wiedziałeś, co robisz!"
3. Przykłady zapisywania
Zazwyczaj mamy wiele przykładów, które można użyć do testowania i debugowania. Dzięki temu możemy zrozumieć, jak różne parametry wpływają na końcowy wynik.
Zapisywanie w formacie PDF
Jeśli musisz osadzić wykres w raporcie lub prezentacji, format PDF jest idealny do tego celu. Jego właściwości wektorowe umożliwiają skalowanie obrazu bez utraty jakości.
plt.savefig('primes.pdf', bbox_inches='tight')
Zapisywanie w formacie wektorowym SVG
SVG świetnie nadaje się do stron internetowych lub pluginów z animacjami, ponieważ jego właściwości umożliwiają dodawanie interaktywności.
plt.savefig('primes.svg', bbox_inches='tight')
Zapisywanie w formacie JPEG
Jeśli w Twoim wykresie dominują obrazy, a nie wyraźne linie i tekst, format JPEG może być przydatny.
plt.savefig('primes.jpg', quality=95)
Przydatne porady
- Nazwa pliku: Wybieraj zrozumiałe i opisowe nazwy dla plików, aby ułatwić ich wyszukiwanie i ponowne użycie.
- Sprawdzenie jakości: Przed włączeniem do raportu przejrzyj wykres na ekranie, aby upewnić się, że jakość odpowiada wymaganiom.
- Używanie przezroczystego tła: Przydatne przy tworzeniu wykresów do prezentacji lub stron internetowych, gdzie wykres może być osadzony na kolorowym tle.
Typowe problemy
Podczas zapisywania wykresów mogą wystąpić błędy, tak jak w przypadku, gdy próbujesz zaktualizować sterowniki drukarki. Jednym z najczęstszych problemów jest niedziałająca funkcja savefig()
w środowiskach typu Jupyter Notebook. Wynika to z faktu, że wykresy w interaktywnych środowiskach mogą być jedynie wyświetlane, a nie zapisywane. W tym przypadku możesz użyć metody plt.close()
do zamknięcia wykresu po jego zapisaniu.
GO TO FULL VERSION