Mapy cieplne i paski kolorów w matplotlib

Mapy cieplne i paski kolorów w matplotlib
Wizualizacja danych jest jednym z najważniejszych kroków w nauce danych (lub w dowolnej innej nauce, jeśli o to chodzi). My, jako ludzie, jesteśmy biedni w zrozumieniu rzędów i rzędów liczb. Dlatego zawsze pomocne jest posiadanie narzędzia takiego jak Matplotlib, aby pomóc nam w opracowaniu wizualnej intuicji tego, co się dzieje, gdy, powiedzmy, algorytm uczenia maszynowego klasyfikuje ogromne ilości danych.

Podczas gdy wykresy pokazujące zależność między dwiema zmiennymi, takimi jak wysokość i waga, można łatwo wykreślić na płaskim ekranie, jak pokazano poniżej, sprawy stają się naprawdę nieuporządkowane, gdy mamy więcej niż dwa parametry.

Wtedy ludzie próbują przejść na działki 3D, ale często są mylące i niezgrabne, co pokonuje cały cel wizualizacji danych. Potrzebujemy map cieplnych do wizualizacji.

Co to są mapy cieplne?

Jeśli spojrzysz na obraz z kamery termicznej, możesz zobaczyć dosłowną mapę cieplną. Kamera obrazowania termicznego reprezentuje różną temperaturę jako różne kolory. Schemat kolorowania przemawia do naszej intuicji, że czerwony jest „ciepłym kolorem” i bierze niebieski i czarny, aby reprezentować zimne powierzchnie.

Ten widok Marsa jest naprawdę dobrym przykładem, w którym zimne regiony mają niebieski kolor, podczas gdy cieplejsze regiony w dużej mierze czerwone i żółte. Pasek kolorów na obrazie pokazuje, jaki kolor reprezentuje temperaturę.

Za pomocą matplotlib możemy kojarzyć się z punktem (x, y) na wykresie o określonym kolorze reprezentującym zmienną, którą próbujemy wizualizować. To nie musi być temperatura, może to być żadna inna zmienna. Będziemy również wyświetlać Kolor obok niego, aby wskazać użytkowników, co oznaczają różne kolory.

Często widziałbyś, jak ludzie wspominają colormaps zamiast map cieplnych. Są one często używane zamiennie. Colormap to bardziej ogólny termin.

Instalowanie i importowanie matplotlib i powiązanych pakietów

Aby zacząć od Matplotlib, upewnij się, że masz zainstalowany Python (najlepiej Python 3 i PIP). Będziesz też potrzebować Numpy, Scipy I Pandy pracować z zestawami danych. Ponieważ zamierzamy wykreślić prostą funkcję, tylko dwa pakiety Numpy I matplotlib będą konieczne.

$ pip instaluj matplotlib Numpy
#lub, jeśli masz zarówno zainstalowane Python dwa, jak i trzy
$ PIP3 instaluj matplotlib Numpy

Po zainstalowaniu bibliotek musisz upewnić się, że są one importowane do programu Python.

importować Numpy jako NP
importować matplotlib.Pyplot as Plt

Teraz możesz użyć funkcji dostarczanych przez te biblioteki za pomocą składni Like NP.numpyfunction ()I plt.jakaś funkcja ().

Kilka przykładów

Zacznijmy od wykreślenia prostej funkcji matematycznej, która przyjmuje punkty w płaszczyźnie (ich współrzędne x i y) i przypisuje im wartość. Zrzut ekranu poniżej pokazuje funkcję wraz z wykresem.

Różne kolory reprezentują różne wartości (jak wskazują skala obok wykresu). Spójrzmy na kod, którego można użyć do wygenerowania tego.

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
# Funkcja matematyczna musimy wykreślić
def z_func (x, y):
powrót (1 - (x ** 2 + y ** 3)) * np.exp (-(x ** 2 + y ** 2) / 2)
# Konfigurowanie wartości wejściowych
x = np.Arange (-3.0, 3.0, 0.1)
y = np.Arange (-3.0, 3.0, 0.1)
X, y = np.Meshgrid (x, y)
# Obliczanie wyjścia i przechowywanie w tablicy Z
Z = z_func (x, y)
im = plt.Imshow (z, cmap = plt.cm.Rdbu, zasięg = ( -3, 3, 3, -3),
interpolacja = „bilinear”)
plt.Colorbar (IM)
plt.tytuł ('$ z = (1-x^2+y^3) e^-(x^2+y^2)/2 $')
plt.pokazywać()

Pierwszą rzeczą do zauważenia jest to, że importujemy tylko matplotlib.Pyplot Niewielka część całej biblioteki. Ponieważ projekt jest dość stary, na przestrzeni lat zgromadził wiele rzeczy. Na przykład matplotlib.Pyplot był popularny w ciągu dnia, ale teraz jest tylko historyczną reliktem, a importowanie go po prostu dodaje więcej wzdęć do twojego programu.

Następnie definiujemy funkcję matematyczną, którą chcemy wykreślić. Wymaga dwóch wartości (x, y) i zwraca trzecią wartość z. Zdefiniowaliśmy jeszcze jej funkcję.

Następna sekcja podejmuje zadanie utworzenia tablicy wartości wejściowych, używamy do tego Numpy, chociaż możesz użyć kompilacji zakres() funkcjonowanie dla tego, jeśli chcesz. Po przygotowaniu listy wartości x i y (od ujemnych 3 do 3) obliczamy z niej wartość Z.

Teraz, gdy obliczyliśmy nasze dane wejściowe i wyjścia, możemy wykreślić wyniki. plt.imshow () mówi Pythonowi, że obraz będzie dotyczył Z, który jest naszą zmienną wyjściową. Mówi także, że będzie to colormap, CMAP, z czerwonym niebieskim (RDBU) skala rozciągająca się od -3 do 3 na obu osi. interpolacja Parametr sprawia, że ​​wykres jest gładszy, sztucznie. W przeciwnym razie twój obraz wyglądałby dość pikselowany i gruboziarnisty.

W tym momencie wykres jest tworzony, po prostu nie wydrukowany. Następnie dodajemy pasek kolorów z boku, aby pomóc w skorelowaniu różnych wartości Z z różnymi kolorami i wspominamy o równaniu w tytule. Są one wykonywane w krokach plt.Colorbar (IM) I plt.tytuł(… ). Wreszcie wywołanie funkcji pokazuje nam wykres na ekranie.

Ponowna użyta

Możesz użyć powyższej struktury do wykreślenia dowolnego innej colormap 2D. Nie musisz nawet trzymać się funkcji matematycznych. Jeśli masz ogromne tablice danych w systemie plików, być może informacje o określonych danych demograficznych lub innych danych statystycznych możesz podłączyć, modyfikując X, y Wartości bez zmiany sekcji Colormap.

Mam nadzieję, że ten artykuł uznałeś za przydatny, a jeśli lubisz podobne treści, daj nam znać.