[Visualisierung des Verhältnisses] Plotly und dynamische Visualisierung [Python, Pie, Sunburst, Sanky, Treemap, Fannele,]

tr.gif

python==3.8 plotly==4.10.0

Kuchen (Yen, Donuts)

Grundkreis

Ich muss nicht mehr über Kreisgraphen erklären

import plotly.express as px
df = px.data.tips()
fig = px.pie(df, values='tip', names='day', 
             title='pie plot with PX')
fig.show()

image.png

mit graph_objects

import plotly.graph_objects as go
df = px.data.tips()
fig = go.Figure(data=[go.Pie(labels=df['day'],
                             values=df['tip'])])

fig.update_traces(hoverinfo='label+percent', 
                  textinfo='value', 
                  textfont_size=20,
                  marker=dict(line=dict(width=2)))
fig.show()

image.png

Donuts machen

import plotly.graph_objects as go

fig = go.Figure(data=[go.Pie(labels=df['day'],
                             values=df['tip'],
                     hole=.3)
                     ])

fig.update_traces(hoverinfo='label+percent', 
                  textinfo='value', 
                  textfont_size=20,
                  marker=dict(line=dict(width=2)))
fig.show()

image.png

Sunburst

Geben Sie in der Reihenfolge an, die als übergeordnetes Element im Pfad angegeben ist Die Größe des Wertes wird durch Werte angegeben

import plotly.express as px
df = px.data.tips()
fig = px.sunburst(df, path=['day', 'time', 'sex'], values='total_bill')
fig.show()

sun.gif

Farbe ändern

Außerdem wird die Größe des Werts farblich gekennzeichnet

import plotly.express as px
df = px.data.tips()
fig = px.sunburst(df, path=['day', 'time', 'sex'], values='total_bill',color='total_bill')
fig.show()

image.png

alluvial (Offshore-Karte)

Basic

import plotly.express as px
df = px.data.tips()
fig = px.parallel_categories(df)
fig.show()

image.png

parallel_categories

Zählen Sie die kategorialen Variablen, um eine parallele Ansicht zu erstellen Geben Sie mit Farbe an, um zu visualisieren, welche Kategorie mit welcher Rate in anderen Variablen vorhanden ist

import plotly.express as px
df = px.data.tips()
fig = px.parallel_categories(df, color="size", 
                             color_continuous_scale=px.colors.sequential.Inferno)
fig.show()

image.png

parallel_coordinates

Überprüfen Sie die Verteilung der kontinuierlichen Werte nacheinander Sie können visuell überprüfen, wo es viele gibt und wie stark sie variieren, anstatt ein Kohäsionsverhältnis.

import plotly.express as px
df = px.data.tips()
fig = px.parallel_coordinates(df, color="size",
                              dimensions=['total_bill', 'size', 'tip'],
                              color_continuous_midpoint=2)
fig.show()

image.png

Sanky-Diagramm (Flussdiagramm)

Eine Grafik, die begann, als Mr. Sanky den Energiefluss visualisierte

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(
    
    go.Sankey(
        
    node = dict(pad = 15,thickness = 20,line = dict(color = "black", width = 0.5),
    label = ["n0","n1","n2","n3","n4"],
    color = "blue"),
        
    link = dict(
      source = [0,1,2,3], 
      target =[1,2,3,4],
      value = [5,10,15,20])
        
    )
)

fig.update_layout(title_text="Sankey Diagram", font_size=10)
fig.show()

image.png

Ein Pfeil wird von der in reeller Zahl eingegebenen Quelle zum Ziel gezogen, und die Dicke des Pfeils wird an den Wert übergeben Geben Sie nur die eindeutige Nummer in Quelle und Ziel für die Bezeichnung an Die angegebene Reihenfolge entspricht der Größe der Quell- und Zielnummern.

Wenn es sich um Daten handelt

image.png

Machen Sie einen Zustand wie Konvertieren Sie die zu übergebende Beziehung in einen numerischen Wert

image.png

Durch eine solche Vorbehandlung Welche Kategorie enthält wie viel Fluss Prozentsatz verteilt auf andere Kategorien Und so weiter

d1 = df.groupby(["sex","smoker"], as_index=False).sum()[["sex","smoker",'total_bill']]
d1.columns = ['sor','tar','total_bill']
d2 = df.groupby(["smoker","day"], as_index=False).sum()[["smoker","day",'total_bill']]
d2.columns = ['sor','tar','total_bill']
d3 = df.groupby(["day","time"], as_index=False).sum()[["day","time",'total_bill']]
d3.columns = ['sor','tar','total_bill']
concat_d = pd.concat([d1, d2, d3],axis=0, ignore_index=True)
label_list = pd.concat([concat_d['sor'],concat_d['tar']],axis=0).unique().astype('str')


for i in range(0,len(label_list)):
    for j in range(0,len(concat_d['sor'])):

        if concat_d['sor'].astype('str')[j]==label_list[i]:
            concat_d['sor'][j]=i
            
        if concat_d['tar'].astype('str')[j]==label_list[i]:
            concat_d['tar'][j]=i

import plotly.graph_objects as go
fig = go.Figure()

fig.add_trace(
    
    go.Sankey(

    node = dict(pad = 15,thickness = 20,line = dict(color = "black", width = 0.5),
    label = label_list,
    color = "blue"),
        
    link = dict(
      source = concat_d.sor, 
      target =concat_d.tar,
      value = concat_d.total_bill)
        
    )
)

fig.update_layout(title_text="Basic Sankey Diagram", font_size=10)
fig.show()

image.png

treemap

Drücken Sie das Verhältnis nach Fläche aus Verwendung von Ausgaben, Bestätigung der Bestandsquote usw.

import plotly.express as px
df = px.data.tips()
fig = px.treemap(df, 
                 path=[px.Constant('back ground'),'sex','day','time'], 
                 values='total_bill',
                 color='sex'
                )
fig.show()

Verzweigen Sie in der Reihenfolge, die an den Pfad übergeben wurde Wenn Sie einen Hintergrund erstellen möchten, erstellen Sie einen beliebigen Hintergrund mit Konstante

tr.gif

Trichter einfach

Kann den Fortschritt des Verhältnisses ausdrücken Kann den Rückgang von der Anzeige der Website zum Kauf ausdrücken

from plotly import graph_objects as go

fig = go.Figure()

fig.add_trace(go.Funnel(
    name = 'Montreal',
    orientation = "h",
    y = ["2018-01-01", "2018-07-01", "2019-01-01", "2020-01-01"],
    x = [100, 60, 40, 20],
    textposition = "inside",
    texttemplate = "%{y| %a. %_d %b %Y}"))

fig.update_layout(yaxis = {'type': 'date'})

fig.show()

image.png

Einige zur gleichen Zeit

from plotly import graph_objects as go

fig = go.Figure()

fig.add_trace(go.Funnel(
    name = 'Montreal',
    orientation = "h",
    y = ["2018-01-01", "2018-07-01", "2019-01-01", "2020-01-01"],
    x = [100, 60, 40, 20],
    textposition = "inside",
    textinfo = "value+percent previous"))

fig.add_trace(go.Funnel(
    name = 'Vancouver',
    orientation = "h",
    y = ["2018-01-01", "2018-07-01", "2019-01-01", "2020-01-01"],
    x = [90, 70, 50, 10],
    textposition = "inside",
    textinfo = "value+percent previous"))


fig.add_trace(go.Funnel(
    name = 'Toronto',
    orientation = "h",
     y = ["2018-01-01", "2018-07-01", "2019-01-01","2020-01-01","2021-01-01"],
    x = [100, 60, 40,30, 20,10],
    textposition = "inside",
    textinfo = "value+percent previous"))

fig.update_layout(yaxis = {'type': 'date'})

fig.show()

Wenn die Textinformationen in Prozent angegeben sind, wird das Verhältnis mit dem Ganzen als 100 angezeigt

image.png

Stellen Sie den Trichter als Flugzeug dar

import plotly.express as px
fig = px.funnel_area(names=["The 1st","The 2nd", "The 3rd", "The 4th", "The 5th"],
                    values=[5, 4, 3, 2, 1],
                    color=[5, 3, 3, 3, 1])
fig.show()

image.png

Recommended Posts

[Visualisierung des Verhältnisses] Plotly und dynamische Visualisierung [Python, Pie, Sunburst, Sanky, Treemap, Fannele,]
[Sprechen Sie über die Zeichnungsstruktur von plotly] Dynamische Visualisierung mit plotly [Python]
[Dichtevisualisierung] Plotly und dynamische Visualisierung [Python3, Hist, KDE, Join, Kontur, Heat Map]
[Zeichnen und Beschriften mehrerer Diagramme] Plotdynamische Visualisierung [python3, make subplot, xlabel, ylabel]
[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
[EDA super basic] Plotly und dynamische Visualisierung [Python3, Tisch, Bar, Box, Violine, Freude]
[Streudiagramm, 3D-Diagramm und Regressionsebene] Diagrammdynamische Visualisierung [Python, Streuung, 3D, Oberfläche, Paar, Gelenk]
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Quellinstallation und Installation von Python
[Kapazitätsanzeige, Gantt-Diagramm, Benutzeroberfläche] Plotly dynamische Visualisierung [Python, Messanzeige, Gantt-Diagramm]