Wprowadzenie do Matplotlib w Pythonie

Matplotlib to biblioteka do kreślenia Pythona, której eksperci od uczenia maszynowego używają głównie do tworzenia statycznych i interaktywnych wizualizacji.

Co to jest Matplotlib

Mathplotlib to dzieło Johna D. Huntera w 2003 roku, które zostało wydane 8 maja 2021 roku i ma aktualną wersję 3.4.2.

Ta biblioteka jest głównie napisana w Pythonie, podczas gdy reszta jest napisana w C Object i JavaScript, dzięki czemu jest kompatybilna z platformą.

Matplotlib używa NumPy, które jest rozszerzeniem numerycznym Pythona. Jego rozszerzenie o NumPy zwiększa jego żywotność jako alternatywę typu open source i czyni go lepszą preferencją niż MATLAB.

W przypadku aplikacji Python GUI, Matplotlib umożliwia kreślenie na nim statycznych wykresów za pomocą zorientowanego obiektowo interfejsu API, do którego jest wyposażony.

Użytkownicy mogą używać tylko kilku napisanych wierszy kodu Pythona do wizualizacji swoich danych za pomocą różnych wykresów, w tym wykresów punktowych, histogramów, wykresów słupkowych, wykresów kołowych, wykresów liniowych i wykresów skrzynkowych.

Możesz użyć Matplotlib do tworzenia wykresów w środowiskach, w tym w powłoce Pythona, notatniku Jupyter,
Laboratorium Jupyter, a także przy użyciu Pycharm lub Anaconda oraz na serwerach aplikacji internetowych, takich jak Flask i Django, na różnych platformach.

Podobnie jak w MATLAB, możesz w dużym stopniu kontrolować wykresy pod względem czcionek, linii, kolorów i stylów.

Po krótkim wprowadzeniu biblioteki Matplotib w Pythonie zobaczmy, jak możemy ją skonfigurować w naszych systemach.

Konfigurowanie środowiska Matplotlib

Jak każdy inny pakiet i bibliotekę Pythona, możesz zainstalować wstępnie skompilowaną bibliotekę Matplotlib i jej pakiety we wszystkich systemach operacyjnych za pomocą menedżera pakietów pip.

Oczywiście wymaga to uprzedniego zainstalowania Pythona i pakietu pip w swoim systemie.

Poniższe polecenia wyświetlają wersję Pythona i pip, aby potwierdzić, czy te narzędzia są już zainstalowane.

Sprawdź, czy zainstalowano Python

Python --version

Sprawdź, czy pip jest zainstalowany

pip -V

Zainstaluj Mathplotlib

Poniższe polecenie instaluje pakiet Matplotlib z indeksu pakietu Python (PyPI).

python -m pip install matplotlib

To polecenie pobiera i instaluje odpowiednie pakiety Matplotlib. Po zakończeniu instalacji powinien pojawić się komunikat o pomyślnej instalacji.

Aby mieć pewność, że Matplotlib został pomyślnie zainstalowany, wpisz następujące polecenie, które wyświetli wersję Matplotlib w wierszu poleceń.

import matplotlib
matplotlib.__version__

Deweloperzy, którzy chcą zainstalować nieskompilowany pakiet Matplotlib, muszą mieć dostęp do odpowiedniego kompilatora w swoim systemie, oprócz zależności, skryptów instalacyjnych, plików konfiguracyjnych i poprawek.

Jednak ta konkretna nieskompilowana instalacja Matplolib może być skomplikowana, szczególnie dla początkujących użytkowników Matplotlib. Dlaczego więc nie użyć jednowierszowego polecenia, aby zainstalować bibliotekę w kilka sekund?🤔

Po zainstalowaniu Matplotlib zaimportuj pakiet do swojego środowiska, aby uzyskać dostęp do jego narzędzi.

Opcje kreślenia Matplotlib

Matplotlib zapewnia liczne opcje kreślenia w celu wizualizacji danych. Umożliwia także dostosowywanie wykresów, zapewniając różne motywy, kolory i opcje palety, których użytkownik może używać do manipulowania wykresami.

Te opcje kreślenia obejmują:

#1. Wykresy słupkowe

Wykresy słupkowe, znane jako wykresy słupkowe, są odpowiednią opcją do wizualizacji ilościowego porównania wartości w tej samej kategorii.

Matplotlib reprezentuje ten wykres za pomocą prostokątnych pasków, gdzie ich długości i wysokości reprezentują ich proporcjonalne wartości. Paski mogą być poziome lub pionowe.

Matplotlib używa swojej funkcji plt.bar() do tworzenia wykresu słupkowego.

Dodatkowo możesz zastosować więcej funkcji do manipulowania tym wykresem. Na przykład funkcje plt.xlabel() i plt.ylabel() oznaczają odpowiednio osie x i y wykresu.

Funkcja plt.title() umożliwia również nadanie tytułu wykresowi, podczas gdy funkcja plt.savefig() zapisuje wykres. Najważniejsza funkcja plot.show() wyświetla wykres.

#2. Działki kołowe

Możesz zwizualizować proporcjonalny rozkład elementów w tej samej kategorii za pomocą okrągłego wykresu statystycznego, który nazywamy wykresami kołowymi.

Wykresy kołowe wyświetlają dane w postaci procentowej. Cały obszar wykresu odpowiada wartości procentowej wszystkich danych, podczas gdy poszczególne wycinki koła reprezentują sekcje wartości procentowej danych.

Matplotlib używa funkcji plt.pie(), która rysuje i dostosowuje parametry wykresu kołowego.
Więcej parametrów, takich jak autopct, które drukują wartość wykresu kołowego z dokładnością do 1 miejsca po przecinku, jest przydatnych podczas kreślenia wykresów kołowych.

Organizacje biznesowe uważają wykresy kołowe za przydatne w prezentowaniu istotnych informacji, takich jak operacje, sprzedaż lub zasoby.

#3. Histogram

Histogram przedstawia rozkład danych liczbowych. Wykorzystuje ciągłe interwały do ​​dzielenia danych na odrębne sekcje.

Główną różnicą między histogramem a wykresem słupkowym jest rodzaj danych, które obsługują. Podczas gdy histogramy obsługują dane typu ciągłego, wykresy słupkowe obsługują zamiast tego dane kategoryczne.

Matplotlib używa funkcji hist(), która używa tablicy losowych lub zdefiniowanych wartości do utworzenia histogramu.

#4. Działki liniowe

Wykresy te są przydatne do pokazywania relacji między dwiema wartościami danych, które definiujemy jako liczbowe i kategoryczne, na podstawie X i Y.

Wykresy liniowe są istotne w śledzeniu zmian wartości danych przez pewien czas.

#5. Wykresy punktowe

Wykresy punktowe wskazują zależność, w tym korelację między zmiennymi w danych. Przydaje się również do identyfikowania wartości odstających.

Wykresy punktowe wykorzystują kropki do przedstawienia relacji między zmiennymi danych oraz wpływu zmiany jednej zmiennej na inną.

Jak tworzyć wykresy w Matplotlib

Matplotlib używa różnych funkcji do tworzenia różnych wykresów. Wykorzystuje również bardzo niewiele linii kodu do tworzenia wykresu.

Poniżej widzimy, jak tworzyć różne opcje wykresu przy użyciu różnych funkcji w Matplotlib.

#1. Wykres barowy w Matplotlib

Wykresy słupkowe, jak wyjaśniono powyżej, wyświetlają kategorie danych za pomocą słupków i osi, które reprezentują porównanie kategorii na jednej osi z odpowiadającymi im wartościami kategorii na drugiej osi.

Funkcja bar() w Matplotlib przyjmuje różne układy argumentów do opisania układu pasków, jak pokazano poniżej.

plt.bar(x, y, height, width, bottom, align)

Parametry x i y reprezentują wartości współrzędnych x i wartości współrzędnych y słupka na wykresie. Parametr width reprezentuje szerokość paska, a parametr height wysokość paska.

Na przykład przedstawmy liczbę psów i kotów w schronisku dla zwierząt o nazwie x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Wyjście:

Wyjście wykresu słupkowego w Mathplotlib

Tak jak w powyższym przykładzie, możesz dodatkowo określić kolor pasków za pomocą atrybutu color. Co więcej, plt.xlabel i p.ylabel nazywają odpowiednio osie x i y, podczas gdy plt.title nazywa wykres.

#2. Jak stworzyć wykres kołowy

Matplotlib używa funkcji pie() dostarczanej z modułem pyplot do wykreślania wykresu kołowego.
Funkcja reprezentuje dane do wykreślenia w postaci tablicy.

Składnia:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Parametr colors określa kolor wycinków ciasta. Możesz użyć tablicy wartości, aby określić kolor każdego plasterka.

Aby dodatkowo zawrzeć szczegóły każdego wycinka w torcie, argument autopct dodaje procenty liczbowe, które reprezentuje każdy wycinek przy użyciu notacji formatowania String w Pythonie. Rozbij jako argument przyjmuje tablicę wartości zaczynających się od 0,1, aby zdefiniować odległość wycinka od środka tortu.

Narysujmy wykres kołowy, który wyświetla zasoby w procentach przydzielonych do konkretnego projektu.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Wyjście:

Wyjście wykresu kołowego w Mathplotlib

Powyższy wykres przedstawia wykres kołowy z czterema wycinkami oznaczonymi odpowiednio w, x, y i z. Wartości rozbicia określają, jak daleko od środka tortu zostaną umieszczone plastry.

Z powyższego wykresu x jest dalej, ponieważ jego wartość rozbicia jest większa niż reszta. Atrybut cienia dodaje cień do wykresu kołowego, tak jak na obrazku, podczas gdy autopct ustawia względny procent całego koła, który reprezentuje każdy plasterek.

#3. Tworzenie wykresu histogramu

W przypadku histogramu użyjemy serii interwałów, aby przedstawić zakres danych wartości na osi x.
Z drugiej strony oś y będzie reprezentować informacje o częstotliwości.

W przeciwieństwie do innych wykresów, wykreślanie histogramu w Matplotlib wymaga pewnych wstępnie zdefiniowanych kroków, które należy wykonać, aby utworzyć wykres.

Te kroki obejmują:

  • Utwórz przedział zakresów z zestawu wartości danych, które posiadasz. Możesz użyć funkcji np.random.normal(), która może wygenerować dla Ciebie losowe wartości.
  • Używając serii przedziałów, podziel wartości na zakres wartości.
  • Policz wartości mieszczące się w każdym określonym przedziale.
  • Teraz użyj funkcji matplotlib.pyplot.hist() do utworzenia histogramu.
  • Funkcja hist() przyjmuje kilka parametrów, w tym:

    x – reprezentuje sekwencję tablicy

    bins — jest to opcjonalny parametr reprezentujący nienakładające się przedziały zmiennych, które mogą zawierać liczby całkowite lub sekwencję ciągów.

    zakres – określa górny i dolny zakres koszy

    align — ten parametr kontroluje wyrównanie histogramu. Czy lewy, prawy czy środkowy.

    kolor – określa kolor pasków.

    rwidth – Ustawia względną szerokość słupków na histogramie do szerokości kosza.

    log – parametr log określa skalę logarytmiczną na osi histogramu.

    Poniższy przykład przedstawia histogram ze zdefiniowanymi wartościami.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Wyjście:

    Wyjście wykresu histogramu w Mathplotlib

    #4. Wykres liniowy w Matplotlib

    Matplotlib używa swojej biblioteki podrzędnej o nazwie pyplot , która zawiera różne funkcje pomagające w jego implementacji.

    Używamy funkcji plot(), która jest funkcją ogólną, która jest dostarczana z pyplot do wykreślania wykresów liniowych i różnych innych typów wykresów liniowych, w tym wykresów zakrzywionych i wykresów wieloliniowych. Tworzenie tych różnych rodzajów wykresów zależy od wartości przekazywanych na oś y.

    Podczas kreślenia importuj matplotlib.pyplot i Numpy, które rysują wykresy. Metoda plot(x,y) tworzy wykres liniowy, przekazując losowe wartości do argumentów x i y.

    Dodatkowo można przekazać zmienną label, która oznacza wydruk. Funkcja title dalej nazywa tytuł wykresu, podczas gdy funkcje xlabel i ylabel określają nazwy osi. Na koniec funkcja show() wyświetla wykres.

    Na przykład:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Wynik:

    Wyjście wykresu liniowego w Mathplotlib

    Atrybut np.linspace zwraca na wykresie zestaw równomiernie rozmieszczonych liczb w określonym przedziale dla wartości x. Spowoduje to utworzenie tablicy 10 wartości z zakresu od 0 do 5. Wartości y są tworzone z równania, które używa odpowiednich wartości x.

    Tworzenie wykresów punktowych

    Matplotlib używa metody scatter() do utworzenia tego wykresu.
    Ta metoda przyjmuje następujące parametry.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Parametry x_axis_data i y_axis_data nie mogą być puste, w przeciwieństwie do pozostałych parametrów, które mogą być opcjonalne i mają wartość None. Podczas gdy argument x_axis_data definiuje tablicę danych dla osi x, y_axis_data ustawia tablicę danych dla osi y.

    Przykład wykresu punktowego w matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Jego wynik będzie podobny do:

    Dane wyjściowe wykresu punktowego w Mathplotlib

    Co to jest subplot() w matplotlib

    Funkcja subplot() może być używana do rysowania wielu wykresów na jednej figurze Matplotlib. Umożliwia to przeglądanie i porównywanie wielu wykresów na rysunku.

    Ta funkcja zwróci krotkę z trzema argumentami; wiersze i kolumny jako odpowiednio pierwszy i drugi argument oraz indeks bieżącego wykresu jako trzeci argument.

    Wiersze i kolumny wyraźnie definiują układ Matplotlib.

    Dlatego na przykład plt.subplot(2, 1, 1) wykreśli figurę Matplotlib z dwoma wierszami i jedną kolumną, a ten wykres będzie pierwszym wykresem.

    Z drugiej strony, plt.subplot(2, 1, 2) wyświetla drugi wykres z dwoma wierszami i jedną kolumną.

    Wykreślenie tych dwóch wykresów utworzy je jeden na drugim, jak w poniższym przykładzie.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    Wynik powyższego przykładu będzie wyglądał jak na poniższym obrazku.

    Korzystając z innego przykładu, użyjmy funkcji subplot, aby wykreślić dwie figury z jednym wierszem i dwiema kolumnami. Spowoduje to wyświetlenie wykresów obok siebie.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    Powyższy przykład wyświetli następujący wynik.

    Cóż, to było ciekawie interaktywne, nie sądzisz?😃

    Ostatnie słowa

    Matplotlib to znana biblioteka wizualizacji w Pythonie. Jego interaktywność i łatwość obsługi nawet dla początkujących sprawiają, że jest jeszcze lepszym narzędziem do kreślenia w Pythonie.

    W tym artykule omówiono przykłady różnych wykresów, które mogą tworzyć funkcje dostarczane z Matplotlib, w tym wykresy kołowe, wykresy słupkowe, histogramy i wykresy punktowe.

    Oczywiście Python ma kilka innych bibliotek, których eksperci od uczenia maszynowego i analitycy danych mogą używać do tworzenia wizualizacji.

    Możesz zbadać więcej wykresów, które możesz utworzyć za pomocą Matplotlib i jakich funkcji użyjesz do utworzenia wykresu.

    Miłego kreślenia!