.Net developer, data scientist
Witam wszystkich na moim kanale. Dzisiaj będziemy rozmawiać o typach danych i formatach w jakich te dane można przekazać jako argumenty funkcji plot.
Spotykamy struktury danych, w których dostęp do poszczególnych elementów jest możliwy przy pomocy tekstu, na przykład słowniki Dictionary z typem klucza string. Są to również struktury danych, które pozwalają na dostęp do elementów przy użyciu atrybutów, na przykład numpy.recarray lub pandas.DataFrame. Użycie takiego argumentu jest możliwe w Matplotlib poprzez podanie argumentu nazwanego data. Jeżeli argument ten został podany, możliwe jest użycie atrybutów do odpowiednich elementów danych jako argumentów funkcji plot().
W ramach przykładu utworzymy strukturę danych o nazwie data, która będzie się składać z 4 elementów: a, b, c i d.
Do narysowania wykresu użyjemy funkcji scatter. W tłumaczeniu z angielskiego słowo scatter znaczy rozproszenie. Jak można się domyśleć wykres rozproszenia jest używany do analizy rozproszenia wartości określonych danych. Jako argumenty funkcji scatter przekazujemy następujące parametry:
Oprócz tego przy pomocy metod xlabel i ylabel dodajemy podpisy do osi x i y odpowiednio. Aby wyświetlić wykres użyjemy polecenia plt.show(). Wynikiem działania kodu będzie wykres rozproszenia naszych wartości losowych, które wygenerowaliśmy wcześniej.
W Matplotlib możliwe jest utworzenie wykresu na podstawie zmiennych kategorycznych. Zmienne kategoryczne można przekazywać do wielu funkcji odpowiedzialnych za rysowanie wykresu. W kolejnym przykładzie utworzymy 3 wykresy na podstawie jednego zestawu zmiennych kategorycznych. Typy wykresów które narysujemy, to wykres słupkowy, wykres punktowy oraz wykres linowy.
W tym przykładzie nowością będzie wywołanie funkcji figure z parametrem figsize oraz przyjrzymy się działaniu funkcji subplot.
Parametr figsize funkcji figure służy do przekazywania rozmiaru rysunku z wykresami w calach – pierwsza liczba oznacza długość wykresu (w naszym przykładzie 12), a druga liczba oznacza wysokość wykresu (w naszym przykładzie to 3).
Funkcja subplot() przyjmuje 3 argumenty
Czyli każde wywołanie funkcji subplot() w bieżącym przykładzie można przypisać na:
Przecinki w wywołaniu funkcji subplot() nie są wymagane jeżeli numrows x numcols < 10. Na przykład wywołanie subplot(131) jest równoznaczne z wywołaniem subplot(1, 3, 1).
Dodajemy nazwę rysunku używając funkcji suptitle i wyświetlamy rysunek, używając funkcji show. Nazwa rysunku to ‘Wykresy oparte o zmienne kategoryczne’. Po wyświetleniu rysunku spójrzmy na układ wykresów i porównajmy z tym, co już wiemy na temat funkcji subplot. Układ rysunków można opisać jako układ jednego wiersza i trzech kolumn, każdy wykres jest na swoim miejscu i ma swój indeks zgodnie z wywołaniem funkcji subplot. W opisie do wideo będzie link do strony z tekstem do tego wideo oraz przykłady w Jupyter Notebook. Zachęcam do zapoznania się z tymi materiałami i uruchomienia przykładów lokalnie na swoim komputerze. W ramach nauki można trochę poeksperymentować z przekazywanymi wartościami i zobaczyć jak będzie zmieniać się układ wykresów po zmianie argumentów funkcji figure i subplot.
Użyjmy danych i typów wykresów z poprzedniego przykładu, ale zmieńmy argumenty wywołania funkcji figure i subplot. Tym razem będzie to mniejszy rysunek o wymiarach 6 na 6, a układ wykresów będzie w kształcie tablicy o wymiarach 2 na 2. Co prawda mamy tylko 3 wykresy, a więc czwarty element tablicy będzie pusty.
W porównaniu z poprzednim przykładem różnica będzie w argumentach funkcji figure i subplot. Szczególnie proszę zwrócić uwagę na argumenty funkcji subplot – są to 221, 222 i 223 czyli liczba wierszy – 2, liczba kolumn – 2 oraz index od 1 do 3 – odpowiedni dla każdego wykresu.
Linie mają wiele atrybutów, które można ustawić i tym samym zmienić wygląd linii, na przykład:
Istnieje kilka możliwości ustawienia właściwości linii:
Dostępne właściwości Line2D są podane w dokumentacji Matplotlib.
Po wygenerowaniu rysunku z trzema wykresami można zauważyć jak każdy parametr użyty przy rysowaniu linii wpłynął na ostateczny wygląd linii.
Dziękuję za uwagę. Jeżeli wideo było pomocne i dowiedziałeś się czegoś nowego to proszę zlajkuj go. Jeżeli wciąż masz pytania, to proszę zadaj je w komentarzu do wideo. A jeżeli chcesz być na bieżąco i dowiadywać się jako pierwszy o nowych wideo to subskrybuj na kanał i kliknij dzwonek. Tekst do tego wideo oraz przykłady kodu są dostępne na mojej stronie internetowej – link w opisie do wideo. Dziękuję.
Kod z przykładami w wideo w formacie Jupyter Notebook jest dostępny tu.