Assegnazione del colore del diagramma di SankeyCiao comunità JMP,
Hai esperienza nell'assegnazione del colore a tutte le sequenze in un diagramma di Sankey con la STESSA categoria di colore? La sfida che ho incontrato è stata che ogni sequenza aveva una categoria di colore diversa, rendendo difficile tracciare il passaggio degli elementi dalla sequenza 1 alla 2... alla n con lo stesso colore assegnato.
Grazie molto!
Analisi e modellazione dei dati di baseEsplorazione e visualizzazione dei datiFinestreRe: Assegnazione del colore al diagramma di SankeyCiao @qunw ,
Benvenuti nella Community!
Penso che il grafico a coordinate parallele possa essere utile per il tuo obiettivo, con la codifica a colori per categoria. Per saperne di più, visita https://www.jmp.com/support/help/it/18.2/#page/jmp/parallel-plots.shtml
Puoi anche controllare l'Enhanced Sankey Plot (ESP) creato da @jthi : https://community.jmp.com/t5/JMP-Add-Ins/Enhanced-Sankey-Plot-ESP/ta-p/549745
Spero che queste opzioni ti siano d'aiuto,
Re: Assegnazione del colore al diagramma di SankeyCiao @qunw , potresti postare un esempio (in forma anonima) del problema che riscontri?
Da parte mia, vorrei poter utilizzare i grafici di Sankey per monitorare i cambiamenti di stato delle "proprietà" durante il flusso di un processo.
ad esempio con diverse categorie di superato e non superato.
In un diagramma di Sankey, il colore non indica il valore per categoria, ma indica i "gruppi". (Il rosso sulla sinistra del diagramma indica le stesse righe della tabella dati del rosso sulla destra, ovvero in qualsiasi altra parte del diagramma). È questo che descrivi con " ogni sequenza aveva una categoria di colore diversa "?
Di conseguenza, nell'esempio seguente, ad esempio il blu può "essere" 0 a sinistra e blu al centro e a destra:

D'altro canto, stando a come funziona la trama, non ha senso assegnare a tutti gli "1" lo stesso colore.
Ma come "trovare" gli 1 in un diagramma di Sankey complicato.
Se non hanno lo stesso colore?
Purtroppo: SOLO DALLE ETICHETTE!
E come trovare i cambiamenti di "stato" - ad esempio da 0 a 1 -> quasi impossibile "a occhio nudo" - funziona solo con un carico pesante sul coprocessore cerebrale:
Diverso dal diagramma di Sankey per valori continui:

... per le colonne con tipo di modellazione nominale lo stesso valore può trovarsi in posizioni piuttosto diverse lungo l'asse Y.
Ciò rende molto difficile rilevare cambiamenti di "stato" nei grafici di Sankey con valori nominali.
Potrebbe esserci un'opzione per passare dalla modalità nominale a una modalità quasi "continua", con gli stessi valori alla stessa altezza, ma con la fantastica funzionalità aggiuntiva di tracciare la "popolazione" in base alla larghezza dei "tubi".
Si desidera abilitare questa modalità: Parallel Plot: assi sincronizzati
La soluzione alternativa al momento:
utilizzare valori (pseudo-)continui.
Re: Assegnazione del colore al diagramma di SankeyOltre all'usabilità, c'è anche un aspetto estetico:
Perché Risparmi , Casa e altri si piegano verso l'alto? Perché non restano alla stessa altezza?
C'è abbastanza spazio (vuoto) in basso a destra:

Re: Assegnazione del colore del grafico di SankeyGrazie, Victor, per i tuoi riferimenti! Ho utilizzato il grafico a coordinate parallele per il diagramma di Sankey della profilazione del trattamento del paziente, ed è difficile assegnare gli stessi colori agli stessi regimi nella sequenza dei trattamenti. I due esempi inclusi nelle istruzioni del grafico a coordinate parallele non sono esattamente simili al mio caso, che potrebbe richiedere una codifica aggiuntiva per sincronizzare l'impostazione dei colori tra i trattamenti.
Re: Assegnazione del colore del grafico di SankeyGrazie mille, Hogi, per avermi aiutato con questa query e per aver condiviso gli esempi! Ho usato il diagramma di Sankey per la profilazione del trattamento dei pazienti e ho provato ad assegnare gli stessi colori agli stessi regimi nella sequenza di trattamenti. Il mio caso è abbastanza simile al tuo esempio. Avevi ragione quando ho descritto "ogni sequenza aveva una categoria di colore diversa". I "valori 1, 2 e 3" sull'asse x corrispondono ai "trattamenti 1, 2 e 3" e i "valori 0, 1, 2" corrispondono ai regimi per trattamento. Vorrei sincronizzare l'impostazione dei colori 0, 1 e 2 in ogni "valore 1, 2 e 3", dove "1" è rosso, "2" è verde e "0" è blu per i valori 1, 2 e 3. Questo mi aiuterà a comprendere il percorso terapeutico dei pazienti. Per favore, fammi sapere se hai una soluzione, grazie mille.

Re: Assegnazione del colore del grafico di SankeyHo trovato questo grafico in un post della community, che forniva un altro modo di visualizzare una domanda correlata, come il monitoraggio della diversità di ciascun regime nel trattamento iniziale e nei trattamenti successivi. Ho trovato un modo per generarlo etichettando ogni valore nei seguenti Outflow con il valore in Outflow 1 come prefisso se provengono dallo stesso valore in Outflow 1, come "Auto", "Casa", "Tasse", ecc. Questo richiede una pre-elaborazione dei dati per funzionare. Spero che tu abbia un modo migliore per farlo. Grazie mille!
Re: Assegnazione del colore del grafico di Sankey
@qunw ha scritto:
Vorrei sincronizzare l'impostazione del colore di 0, 1 e 2 in ciascun "valore 1, 2 e 3", dove "1" è rosso, "2" è verde e "0" è blu nei valori 1, 2 e 3.
Ok, capito.
Temo che ciò non sia possibile (e non sia previsto) tramite il complotto di Sankey.
Re: Assegnazione del colore del grafico di SankeyIn GraphBuilder, i colori possono essere assegnati tramite gli stati di riga o la zona di rilascio del colore.
In entrambi i casi il colore è definito "per riga".
Pertanto, quando si seleziona una traiettoria nel grafico, viene selezionata una riga specifica. Il colore della traiettoria è definito dal colore di questa riga. Una traiettoria, un colore.

Scopri di più...
New Table( "treatment",
Add Rows( 9 ),
New Column( "patient",
Character,
Set Values(
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8"}
)
),
New Column( "treatment 1",
"Nominal",
Set Values( [1, 1, 1, 2, 2, 2, 3, 3, 3] )
),
New Column( "treatment 2",
"Nominal",
Set Values( [1, 2, 3, 1, 2, 3, 1, 2, 3] )
),
New Column( "treatment 3",
"Nominal",
Set Values( [1, 1, 2, 1, 2, 3, 3, 3, 3] )
)
)
Re: Assegnazione del colore del grafico di Sankeyper ottenere colori diversi per la stessa riga, è necessario utilizzare uno scripting oppure dividere la riga.
Dividi la riga: impila la tabella:
current data table << Stack( columns( :treatment 1, :treatment 2, :treatment 3 ));
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Label ), Y( :patient ), Color( :Data ) ),
Elements( Heatmap( X, Y, Legend( 4 ) ) )
);

Re: Assegnazione del colore del grafico di SankeyIl grafico Heatmap contiene tutte le informazioni, ma è sorprendente quante co-elaborazioni siano necessarie al cervello umano per "capirle".
Più vicino al grafico di Sankey, con il trattamento indicato dal colore E dalla posizione lungo l'asse y.
-> è necessaria una minore coelaborazione: è molto più facile vedere le informazioni a occhio nudo.

Ancora più vicino a Sankey, con tutte le traiettorie in un unico grafico,
il grafico diventa molto affollato e non è più possibile seguire traiettorie specifiche.

Re: Assegnazione del colore del grafico di SankeyHai assolutamente ragione!
Re: Assegnazione del colore del grafico di SankeyDavvero. Un diagramma di Sankey sarebbe ancora la visualizzazione migliore per il monitoraggio del profilo.
Re: Assegnazione del colore del grafico di SankeyChe ne dici della proposta in Parallel Plot: assi sincronizzati ?
utilizzare la stessa posizione "Y" per identificare lo stesso "valore".
Questa opzione è già disponibile per le colonne con tipo di modellazione "continuo" (non nominale).
È possibile regolare la larghezza della linea per ottenere un grafico più gradevole.
Sfortunatamente, non è possibile utilizzare la larghezza della linea per rappresentare la frazione/popolazione.
Il colore può essere utilizzato per identificare un altro tipo di informazione:
trattamento iniziale:

numero di trattamenti diversi:

dt = New Table( "treatment",
Add Rows( 9 ),
New Column( "patient",
Character,
Set Values(
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8"}
)
),
New Column( "treatment 1",
//"Nominal",
Set Values( [1, 1, 1, 2, 2, 2, 3, 3, 3] )
),
New Column( "treatment 2",
//"Nominal",
Set Values( [1, 2, 3, 1, 2, 3, 1, 2, 3] )
),
New Column( "treatment 3",
//"Nominal",
Set Values( [1, 1, 2, 1, 2, 3, 3, 3, 3] )
)
);
//this functionality is only available for scripters.<BR />//via the GUI, a user can create the equation manually
dt << New Formula Column(
Operation( Category( "Character" ), "Concatenate with Underscore" ),
Columns( :treatment 1, :treatment 2, :treatment 3 )
) << Run Formulas;
Graph Builder(
Size( 568, 240 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :treatment 1 ),
X( :treatment 2, Position( 1 ) ),
X( :treatment 3, Position( 1 ) ),
Color( :"Concatenate[treatment 1,treatment 2,treatment 3]"n )
),
Elements(
Parallel( X( 1 ), X( 2 ), X( 3 ) )
)
);