Plotly - Box Plot Violin Plot and Contour Plot

Ten rozdział koncentruje się na szczegółowym zrozumieniu różnych wykresów, w tym wykresu skrzynkowego, wykresu skrzypcowego, wykresu konturowego i wykresu kołczanu. Początkowo zaczniemy od następującego wykresu pudełkowego.

Wykres pudełkowy

Wykres pudełkowy wyświetla podsumowanie zestawu danych zawierającego minimum, first quartile, median, third quartile, i maximum. Na wykresie pudełkowym rysujemy prostokąt od pierwszego do trzeciego kwartylu. Pionowa linia przechodzi przez prostokąt na środku. Linie wychodzące pionowo z prostokąta wskazujące na zmienność poza górnym i dolnym kwartylem nazywane są wąsami. W związku z tym wykres pudełkowy jest również nazywany pudełkiem iwhisker plot. Wąsy przechodzą z każdego kwartylu do minimum lub maksimum.

Aby narysować wykres pudełkowy, musimy użyć go.Box()funkcjonować. Serie danych można przypisać do parametru x lub y. W związku z tym wykres pudełkowy zostanie narysowany poziomo lub pionowo. W poniższym przykładzie dane dotyczące sprzedaży określonej firmy w jej różnych oddziałach są konwertowane na poziomy wykres pudełkowy. Pokazuje medianę wartości minimalnej i maksymalnej.

trace1 = go.Box(y = [1140,1460,489,594,502,508,370,200])
data = [trace1]
fig = go.Figure(data)
iplot(fig)

Wynik tego samego będzie następujący -

Plik go.Box()funkcja może mieć różne inne parametry do sterowania wyglądem i zachowaniem wykresu pudełkowego. Jednym z takich parametrów jest boxmean.

Plik boxmeanparametr ma domyślnie wartość true. W rezultacie średnia rozkładu leżącego u podstaw pól jest rysowana jako przerywana linia wewnątrz pól. Jeśli jest ustawiony na sd, rysowane jest również odchylenie standardowe rozkładu.

Plik boxpoints parametr jest domyślnie równy „outliers". Pokazane są tylko punkty próbkowania leżące poza wąsami. Jeśli„ podejrzane wartości odstające "są pokazane, punkty odstające są pokazane, a punkty mniejsze niż 4" Q1-3 "Q3 lub większe niż 4" Q3-3 "Q1 są podświetlone. Jeśli" Fałsz ”, tylko ramki są wyświetlane bez punktów próbkowania.

W poniższym przykładzie box trace jest rysowany z odchyleniem standardowym i punktami odstającymi.

trc = go.Box(
   y = [
      0.75, 5.25, 5.5, 6, 6.2, 6.6, 6.80, 7.0, 7.2, 7.5, 7.5, 7.75, 8.15,
      8.15, 8.65, 8.93, 9.2, 9.5, 10, 10.25, 11.5, 12, 16, 20.90, 22.3, 23.25
   ],
   boxpoints = 'suspectedoutliers', boxmean = 'sd'
)
data = [trc]
fig = go.Figure(data)
iplot(fig)

Wynik tego samego podano poniżej -

Fabuła skrzypiec

Wykresy skrzypcowe są podobne do wykresów skrzynkowych, z tą różnicą, że pokazują również gęstość prawdopodobieństwa danych przy różnych wartościach. Wykresy skrzypcowe będą zawierać znacznik dla mediany danych i ramkę wskazującą rozstęp międzykwartylowy, tak jak w przypadku standardowych wykresów pudełkowych. Na ten wykres pudełkowy nałożone jest oszacowanie gęstości jądra. Podobnie jak wykresy skrzynkowe, wykresy skrzypcowe są używane do reprezentowania porównania zmiennego rozkładu (lub rozkładu próby) w różnych „kategoriach”.

Fabuła skrzypiec jest bardziej pouczająca niż zwykły wykres pudełkowy. W rzeczywistości, podczas gdy wykres skrzynkowy pokazuje tylko statystyki podsumowujące, takie jak średnia / mediana i rozstępy międzykwartylowe, wykres skrzypcowy pokazujefull distribution of the data.

Obiekt śledzenia skrzypiec jest zwracany przez go.Violin() funkcja w graph_objectsmoduł. Aby wyświetlić podstawowy wykres pudełkowy, plikboxplot_visibleatrybut jest ustawiony na True. Podobnie, ustawiającmeanline_visible na true, linia odpowiadająca średniej próbki jest wyświetlana wewnątrz skrzypiec.

Poniższy przykład ilustruje sposób wyświetlania wykresu skrzypiec przy użyciu funkcji plotly.

import numpy as np
np.random.seed(10)
c1 = np.random.normal(100, 10, 200)
c2 = np.random.normal(80, 30, 200)
trace1 = go.Violin(y = c1, meanline_visible = True)
trace2 = go.Violin(y = c2, box_visible = True)
data = [trace1, trace2]
fig = go.Figure(data = data)
iplot(fig)

Dane wyjściowe są następujące -

Działka konturowa

Wykres konturowy 2D przedstawia linie konturowe tablicy numerycznej 2D z, tj. Linie interpolowane isovaluesz. Warstwica funkcji dwóch zmiennych jest krzywą, wzdłuż której funkcja ma wartość stałą, tak że krzywa łączy punkty o jednakowej wartości.

Wykres konturowy jest odpowiedni, jeśli chcesz zobaczyć, jak zmienia się pewna wartość Z w funkcji dwóch danych wejściowych, X i Y takie że Z = f(X,Y). Warstwica lub izolinia funkcji dwóch zmiennych to krzywa, wzdłuż której funkcja ma stałą wartość.

Niezależne zmienne x i y są zwykle ograniczone do zwykłej siatki zwanej meshgrid. Numpy.meshgrid tworzy prostokątną siatkę z tablicy wartości x i tablicy wartości y.

Najpierw utwórzmy wartości danych dla x, y i z za pomocą linspace()funkcja z biblioteki Numpy. Tworzymymeshgrid z wartości x i y i uzyskaj tablicę z składającą się z pierwiastka kwadratowego z x2+y2

Mamy go.Contour() funkcja w graph_objects moduł, który przyjmuje x,y i zatrybuty. Poniższy fragment kodu wyświetla wykres konturowy x,y i z wartości obliczone jak powyżej.

import numpy as np
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
trace = go.Contour(x = xlist, y = ylist, z = Z)
data = [trace]
fig = go.Figure(data)
iplot(fig)

Dane wyjściowe są następujące -

Wykres konturowy można dostosować za pomocą jednego lub kilku z następujących parametrów -

  • Transpose (boolean) - Transponuje dane z.

Gdyby xtype (lub ytype) równa się „tablica”, współrzędne x / y są określone przez „x” / „y”. Jeśli „skalowane”, współrzędne x są określane przez „x0” i „dx”.

  • Plik connectgaps parametr określa, czy luki w danych z są wypełniane, czy nie.

  • Wartość domyślna ncontoursparametr wynosi 15. Rzeczywista liczba konturów zostanie wybrana automatycznie jako mniejsza lub równa wartości „ncontours”. Działa tylko wtedy, gdy „kontur automatyczny” ma wartość „Prawda”.

Domyślny typ konturów: „levels”, więc dane są przedstawiane jako wykres konturowy z wyświetlanymi wieloma poziomami. Jeśli constrain, dane są reprezentowane jako ograniczenia z nieprawidłowym regionem cieniowanym, jak określono w operation i value parametry.

showlines - Określa, czy kontury są rysowane, czy nie.

zauto jest True domyślnie i określa, czy domena kolorów jest obliczana w odniesieniu do danych wejściowych (tutaj w „z”), czy też do granic określonych w „zmin`i`zmax`Domyślnie`False`kiedy` zmin` i `zmax` są ustawione przez użytkownika.

Fabuła kołczanu

Fabuła kołczanu jest również znana jako velocity plot. Wyświetla wektory prędkości jako strzałki z komponentami (u,v) w punktach (x, y). Aby narysować wykres kołczanu, użyjemycreate_quiver() funkcja zdefiniowana w figure_factory moduł w Plotly.

Interfejs API języka Python firmy Plotly zawiera moduł fabryki figur, który zawiera wiele funkcji opakowujących, które tworzą unikalne typy wykresów, które nie są jeszcze uwzględnione w plotly.js, Biblioteka graficzna Plotly o otwartym kodzie źródłowym.

Funkcja create_quiver () przyjmuje następujące parametry -

  • x - współrzędne x lokalizacji strzałek

  • y - współrzędne y lokalizacji strzałek

  • u - x składowych wektorów strzałek

  • v - składowe y wektorów strzałek

  • scale - rozmiar łusek strzałek

  • arrow_scale - długość grotu.

  • angle - kąt grotu strzały.

Poniższy kod renderuje prosty wątek w notatniku Jupyter -

import plotly.figure_factory as ff
import numpy as np
x,y = np.meshgrid(np.arange(-2, 2, .2), np.arange(-2, 2, .25))
z = x*np.exp(-x**2 - y**2)
v, u = np.gradient(z, .2, .2)

# Create quiver figure
fig = ff.create_quiver(x, y, u, v,
scale = .25, arrow_scale = .4,
name = 'quiver', line = dict(width = 1))
iplot(fig)

Dane wyjściowe kodu są następujące -