
python==3.8 plotly==4.10.0
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()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended Posts