Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wizualizacja danych za pomocą Pand

Pandy wspierały nas dotychczas na etapie wstępnego przetwarzania danych. Chociaż w jednym przypadku podczas tworzenia histogramów wykorzystaliśmy także inny moduł Pand – plotting.

Jak dotąd celowo tego unikaliśmy, ponieważ wcześniejsze wprowadzenie spowodowałoby więcej pytań niż odpowiedzi. Mianowicie Pandy i Matplotlib był tak powszechnym i wszechobecnym duetem, że Pandy zaczęły integrować funkcjonalność Matplotlib. To ciężko wykorzystuje Matplotlib do wykonywania wszelkich rzeczywistych kreśleń, a wiele funkcji Matplotlib znajdziesz w kodzie źródłowym. Alternatywnie możesz użyć innych backendów do kreślenia, takich jak Zgrabnie i Bokeh.

Jednak Pandy wprowadzają nas także w kilka wątków nie są część standardowych typów wykresów Matplotlib, takich jak KDE, Krzywe Andrewsa, Wykresy Bootstrapa i Macierze rozproszone.

Połączenia plot() funkcja pandy DataFrame używa backendu określonego przez plotting.backendiw zależności od kind argument – ​​generuje wykres korzystając z podanej biblioteki. Ponieważ wiele z nich się pokrywa – nie ma sensu omawiać typów działek takich jak line, bar, hist i scatter. Wygenerują prawie te same wykresy z tym samym kodem, co robiliśmy do tej pory z Matplotlibem.

Przyjrzymy się tylko pokrótce plot() ponieważ dotychczas zbadano mechanizm leżący u jego podstaw. Zamiast tego skupmy się na niektórych fabułach, które omawiamy nie może już łatwo zrobić z Matplotlibem.

To będzie bardzo krótki rozdział, ponieważ możliwości kreślenia i wizualizacji Pandy bledną w porównaniu z Matplotlibem – ale nadal warto poznać niektóre z nich, a także mieć świadomość możliwości kreślenia z DataFramebezpośrednio.

Połączenia DataFrame.plot() Funkcjonować

Połączenia plot() funkcja akceptuje x i y cechy i a kind argument. Alternatywnie, aby uniknąć kind argument, możesz także zadzwonić DataFrame.plot.kind() zamiast tego i przekaż x i y funkcje.

Przyjęte wartości dla kind argumentem są: line, bar, barh (pasek poziomy), hist, box, kde, density (synonim dla kde), area, pie, scatter i hexbin (podobnie jak mapa cieplna).

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

Zamiast zapewniać Series instancje, tak jak robimy to dla Matplotlib – wystarczy zapewnić nazwy kolumn, a ponieważ dzwonisz do plot() funkcja na DataFrame wizualizujesz, Pandy z łatwością przyporządkują te wartości ciągów do odpowiednich nazw kolumn.

Każde z tych połączeń tworzy nowe Figure instancję i wykreśla na niej odpowiednie wartości:

Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Aby wykreślić wiele osi na tym samym Figure, możesz zrobić Figure i jeden lub więcej Axes przez plt.subplots() i przypisz odpowiednie Axes do ax argument każdego plot.plot_type() połączenie:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

Niektóre standardowe argumenty, takie jak rotation argumenty są w rzeczywistości różne w plot() dzwoni. Na przykład, rotation jest skrócony do rot. To sprawia, że ​​jest to trochę trudne po prostu przełącz się między Matplotlibem a Pandas, ponieważ najprawdopodobniej wylądujesz na stronach dokumentacji, po prostu sprawdzając, które argumenty można zastosować, a które nie.

Teraz zamiast tworzyć nowy Figure or Axes Przykładowo każda z tych działek będzie stacjonowała w odpowiednim miejscu Axes przypadkach, w które je dostarczyliśmy:

Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Ogólnie rzecz biorąc, kreślenie za pomocą Pand jest wygodne i szybkie, ale mimo to w przypadku wykresów słupkowych, liniowych i pudełkowych prawdopodobnie będziesz chciał skorzystać z Matplotlib. Jest to zarówno podstawowy silnik, z którego nieuchronnie korzysta Panda, jak i ma więcej opcji dostosowywania, dzięki czemu nie musisz zapamiętywać nowego zestawu argumentów, których możesz używać w przypadku wykresów Pandy.

Biorąc to pod uwagę, w przypadku niektórych działek możesz preferować Pandy, ponieważ musiałyby być wykonane ręcznie w Matplotlib, a wykonanie niektórych z nich jest tak kłopotliwe, że nie jest warte wysiłku, jak na przykład linie KDE.

Pandy konspiratorstwo Moduł

Co DataFramemają do zaoferowania w zakresie wizualizacji, nie jest dla nas niczym nowym. Jednak podstawowy moduł, który nazywają, pandas.plotting robi. The plotting Moduł posiada kilka funkcji, z których możemy skorzystać, jak np autocorrelation_plot(), bootstrap_plot(), scatter_matrix().

Każdy z nich akceptuje albo a Series lub DataFrame, w zależności od rodzaju tworzonej wizualizacji, a także niektórych parametrów specyfikacji kreślenia i celów stylistycznych.

Wykres Bootstrapa

Bootstrapping to proces losowego pobierania próbek (z zastępowaniem) zbioru danych i obliczania miar dokładności, takich jak stronniczość, zmienność i przedziały ufności dla losowych próbek. „Z zastąpieniem” w praktyce oznacza, że ​​każdy losowo wybrany element można wybrać ponownie. Bez zamiany oznacza, że ​​po każdym losowo wybranym elemencie jest on usuwany z puli do następnej próbki.

A Wykres Bootstrapa, utworzony przez Pandas, ładuje statystyki średniej, mediany i średniego zakresu zbioru danych na podstawie próbki size, po czym wykres jest następnie pokazywany poprzez plt.show(). Domyślne argumenty dla size i samples jest 50 i 500 odpowiednio.

Oznacza to, że dla danej funkcji pobieramy próbkę 50 wartości. Następnie dla tych 50 wartości generowana jest 50-elementowa podpróbka (dane syntetyczne) i dla nich obliczana jest statystyka podsumowująca (średnia/mediana/średni zakres). Ten proces się powtarza 500 razy, więc ostatecznie mamy 500 statystyk podsumowujących:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wykres autokorelacji

Wykresy autokorelacji służą do sprawdzania losowości danych w przypadku danych szeregów czasowych. Wiele autokorelacje są obliczane dla różnych znaczników czasu, a jeśli dane są rzeczywiście losowe – korelacja będzie bliska zeru. Jeżeli nie – korelacja będzie większa od zera.

Narysujmy dwa wykresy autokorelacji – jeden z naszym wartość funkcję i jedną z Series wypełnione losowymi wartościami:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

Wykres autokorelacji dla random_series powinno się kręcić wokół 0, ponieważ są to dane losowe, natomiast wykres dla Value funkcja nie będzie:

Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Warto zauważyć, że autokorelacja mierzy jeden Nasz formularz losowości, jako nieskorelowane, ale istnieją dane nielosowe. Jeśli nie jest losowy, ale nie ma żadnych znaczących korelacji – wykres autokorelacji wskazywałby, że dane są losowe.

Macierze rozproszone

Macierze rozproszone fabuła A ruszt wykresów punktowych dla wszystkich obiektów względem wszystkich obiektów. Ponieważ to nieuchronnie porównuje każdą cechę także ze sobą – przekątna gdzie tak się dzieje, jest zwykle zastępowane przez a Histogram tej cechy, a nie wykres punktowy. Macierze rozproszone są również znane jako Pary działek, a Seaborn oferuje pairplot() pełnić funkcję właśnie do tego.

Połączenia scatter_matrix() funkcja akceptuje a DataFrame i tworzy macierz rozproszenia dla wszystkich jej cech numerycznych i zwraca tablicę 2D Axes instancje składające się na macierz rozproszenia. Aby cokolwiek w nich zmienić, będziesz chciał je przejrzeć:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

Powoduje to dość dużą macierz rozproszenia wszystkich cech w porównaniu ze wszystkimi innymi cechami:

Wizualizacja danych za pomocą Pandas PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Można także przejść w diagonal argument, który akceptuje 'hist' or 'kde' aby określić, jaki typ wykresu rozkładu chcesz wykreślić po przekątnej, a także alpha, określając przezroczystość znaczników na wykresach punktowych.

Znak czasu:

Więcej z Nadużycie stosu