CodeGym /Kurs Javy /Python SELF PL /Zapisywanie wykresów jako obrazów do użycia w raportach

Zapisywanie wykresów jako obrazów do użycia w raportach

Python SELF PL
Poziom 42 , Lekcja 1
Dostępny

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.

Python

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.

Python

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".

Python

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.

Python

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 z bbox_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.

Python

# 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.

Python

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.

Python

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.

Python

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.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION