[Visualisation du ratio] Visualisation tracée et dynamique [python, pie, sunburst, sanky, treemap, fannele,]

tr.gif

python==3.8 plotly==4.10.0

tarte (yen, beignets)

Cercle de base

Je n'ai plus besoin d'expliquer les graphiques circulaires

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

avec 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

Faire des beignets

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

soleil

Spécifiez dans l'ordre spécifié comme parent dans le chemin La taille de la valeur est spécifiée par des valeurs

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

sun.gif

Changer de couleur

Il code également en couleur la taille de la valeur

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 (carte du large)

De base

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

image.png

parallel_categories

Comptez les variables catégorielles pour créer une vue parallèle Spécifiez avec la couleur pour visualiser quelle catégorie existe dans d'autres variables à quelle vitesse

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

Vérifier la distribution des valeurs continues une par une Vous pouvez vérifier visuellement où il y en a et dans quelle mesure ils varient, plutôt qu'un rapport cohérent.

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

diagramme sombre (organigramme)

Un graphique qui a commencé lorsque M. Sanky a visualisé le flux d'énergie

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

Une flèche est dessinée à partir de la source saisie sous forme de nombre réel vers la cible et l'épaisseur de la flèche est transmise à la valeur. Spécifiez uniquement le numéro unique dans la source et la cible pour l'étiquette L'ordre spécifié correspond à la taille des numéros source et cible.

Si c'est sous forme de données

image.png

Faire un état comme Convertir la relation à transmettre en une valeur numérique

image.png

En faisant un tel prétraitement, Quelle catégorie contient le débit Pourcentage distribué à d'autres catégories Etc

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

Exprimer le ratio par zone Utilisation des dépenses, confirmation du ratio de stock, etc.

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()

Branche dans l'ordre passé au chemin Si vous voulez créer un arrière-plan, créez-en un arbitraire avec une constante

tr.gif

entonnoir de base

Peut exprimer la progression du ratio Peut exprimer le refus de la consultation du site Web à l'achat

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

Certains en même temps

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()

Si les informations textuelles correspondent au pourcentage total, le rapport affiche le total à 100

image.png

Représenter l'entonnoir comme un avion

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

[Visualisation du ratio] Visualisation tracée et dynamique [python, pie, sunburst, sanky, treemap, fannele,]
[Parlez de la structure de dessin de plotly] Visualisation dynamique avec plotly [python]
[Visualisation de la densité] Visualisation tracée et dynamique [python3, hist, kde, jointure, contour, heat map]
[Dessin et étiquetage de plusieurs graphes] Visualisation tracé dynamique [python3, make subplot, xlabel, ylabel]
[Diverses analyses d'images avec plotly] Visualisation dynamique avec plotly [python, image]
[Écrire sur la carte avec plotly] Visualisation dynamique avec plotly [python]
[EDA super basic] Visualisation tracée et dynamique [python3, table, bar, box, violon, joy]
[Diagramme de dispersion, tracé 3D et plan de régression] Visualisation tracé dynamique [python, scatter, 3D, surface, paire, joint]
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
Installation source et installation de Python
[Indicateur de capacité, diagramme de Gantt, interface utilisateur] Visualisation tracé dynamique [python, affichage de jauge, diagramme de Gantt]