Affectation des couleurs du tracé de SankeyBonjour la communauté JMP,
Avez-vous déjà attribué une couleur à toutes les séquences d'un diagramme de Sankey avec la même catégorie de couleur ? Le problème que j'ai rencontré était que chaque séquence avait une catégorie de couleur différente, ce qui compliquait le suivi des changements des éléments de la séquence 1 à 2, puis à n, avec la même couleur attribuée.
Merci beaucoup!
Analyse et modélisation des données de baseExploration et visualisation des donnéesWindowsRe : Attribution des couleurs du tracé SankeySalut @qunw ,
Bienvenue dans la Communauté !
Je pense que le tracé en coordonnées parallèles pourrait vous être utile pour votre objectif, grâce au code couleur par catégorie. Pour en savoir plus, cliquez ici : https://www.jmp.com/support/help/fr/18.2/#page/jmp/parallel-plots.shtml
Vous pouvez également consulter le diagramme de Sankey amélioré (ESP) créé par @jthi : https://community.jmp.com/t5/JMP-Add-Ins/Enhanced-Sankey-Plot-ESP/ta-p/549745
J'espère que ces options vous aideront,
Re : Attribution des couleurs du tracé SankeyBonjour @qunw , pourriez-vous s'il vous plaît publier un exemple (anonymisé) du problème que vous rencontrez ?
De mon côté, j'aimerais pouvoir utiliser les tracés de Sankey pour surveiller les changements d'état - des « propriétés » au cours d'un flux de processus.
par exemple avec différentes catégories de réussite et d'échec.
Dans un diagramme de Sankey, la couleur n'indique pas la valeur par catégorie, elle indique les « groupes ». (Le rouge à gauche du diagramme représente les mêmes lignes du tableau de données que le rouge à droite, n'importe où ailleurs dans le diagramme.) Est-ce ce que vous décrivez avec « chaque séquence avait une catégorie de couleur différente » ?
En conséquence - dans l'exemple ci-dessous, par exemple, le bleu peut « être » 0 à gauche, et le bleu au centre et à droite :

D'un autre côté, vu le fonctionnement de l'intrigue, cela n'a pas de sens de donner à tous les "1" la même couleur.
Mais comment « trouver » les 1 dans un tracé de Sankey compliqué.
S'ils n'ont pas la même couleur ?
Malheureusement : JUSTE PAR LES ÉTIQUETTES !
Et comment trouver les changements d'« état » - par exemple de 0 à 1. -> presque impossible « à l'œil nu » - cela fonctionne simplement avec une charge importante sur le coprocesseur cérébral :
Différent d'un tracé de Sankey pour les valeurs continues :

... pour les colonnes avec un type de modélisation nominal, la même valeur peut se trouver à des positions assez différentes le long de l'axe Y.
Cela rend très difficile la détection des changements d’« état » pour les tracés de Sankey avec des valeurs nominales.
Il pourrait y avoir une option pour passer du mode nominal à un quasi « mode continu » - avec les mêmes valeurs sur la même hauteur - mais avec la fonctionnalité supplémentaire intéressante de suivre la « population » par la largeur des « tubes »
Il existe un souhait d'activer ce mode : Parallel Plot : axes synchronisés
La solution de contournement pour le moment :
utiliser des valeurs (pseudo-)continues.
Re : Attribution des couleurs du tracé SankeyOutre la facilité d'utilisation, il y a aussi un aspect esthétique :
Pourquoi les caisses d'épargne , les caisses d'habitation et autres se penchent-elles vers le haut ? Pourquoi ne pas rester à la même hauteur ?
Il y a suffisamment d'espace (vide) en bas à droite :

Re : Attribution des couleurs du tracé SankeyMerci Victor pour vos références ! J'ai utilisé le tracé en coordonnées parallèles pour le diagramme de Sankey du profil thérapeutique des patients, et il est difficile d'attribuer les mêmes couleurs aux mêmes schémas thérapeutiques dans la séquence de traitements. Les deux exemples inclus dans les instructions du tracé en coordonnées parallèles ne sont pas exactement similaires à mon cas, ce qui pourrait nécessiter un codage supplémentaire pour synchroniser le réglage des couleurs entre les traitements.
Re : Attribution des couleurs du tracé SankeyMerci beaucoup, Hogi, pour votre aide et vos exemples ! J'ai utilisé le diagramme de Sankey pour le profilage thérapeutique des patients et j'ai essayé d'attribuer les mêmes couleurs aux mêmes schémas thérapeutiques dans la séquence. Mon cas est assez similaire à votre exemple. Vous aviez raison concernant ma description : « chaque séquence avait une catégorie de couleur différente ». Les « valeurs 1, 2 et 3 » sur l'axe des abscisses correspondent aux « traitements 1, 2 et 3 », et les « valeurs 0, 1, 2 » correspondent aux schémas thérapeutiques par traitement. J'aimerais synchroniser les couleurs de 0, 1 et 2 pour chaque « valeur 1, 2 et 3 », où « 1 » correspond au rouge, « 2 » au vert et « 0 » au bleu pour les valeurs 1, 2 et 3. Cela nous aidera à comprendre le parcours thérapeutique des patients. N'hésitez pas à me faire part de vos solutions. Merci beaucoup.

Re : Attribution des couleurs du tracé SankeyJ'ai découvert ce graphique grâce à un message de la communauté, qui offrait une autre façon de visualiser une question connexe, comme le suivi de la diversité de chaque schéma thérapeutique lors du traitement initial et des traitements suivants. J'ai trouvé un moyen de le générer en étiquetant chaque valeur des flux sortants suivants avec la valeur du flux sortant 1 comme préfixe si elles proviennent de la même valeur du flux sortant 1, par exemple « Auto », « Domicile », « Taxes », etc. Cela nécessite un prétraitement des données. J'espère que vous avez une meilleure méthode. Merci beaucoup !
Re : Attribution des couleurs du tracé Sankey
@qunw a écrit :
Je voudrais synchroniser le réglage des couleurs de 0, 1 et 2 dans chaque « valeur 1, 2 et 3 », où « 1 » est rouge, « 2 » est vert et « 0 » est bleu sur les valeurs 1, 2 et 3.
Ok, compris.
Je crains que cela ne soit pas possible (et non prévu) via l'intrigue de Sankey.
Re : Attribution des couleurs du tracé SankeyDans GraphBuilder, les couleurs peuvent être attribuées via les états de ligne ou la zone de dépôt de couleurs.
Dans les deux cas, la couleur est définie « par ligne ».
Ainsi, lorsque vous sélectionnez une trajectoire dans le graphique, une ligne spécifique est sélectionnée. La couleur de la trajectoire est définie par la couleur de cette ligne. Une trajectoire, une couleur.

Voir plus...
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 : Attribution des couleurs du tracé Sankeypour obtenir des couleurs différentes pour la même ligne, il faut utiliser un script - ou diviser la ligne.
Diviser la ligne : Empiler le tableau :
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 : Attribution des couleurs du tracé SankeyLe graphique Heatmap contient toutes les informations - mais : il est surprenant de voir combien de co-traitements le cerveau humain a besoin pour « le comprendre ».
Plus proche du tracé de Sankey - avec le traitement indiqué par la couleur ET la position le long de l'axe des y.
-> moins de cotraitement nécessaire - il est beaucoup plus facile de voir les informations à l'œil nu.

Encore plus proche de Sankey - avec toutes les trajectoires dans une seule intrigue,
le graphique devient très chargé et il n'est plus possible de suivre des trajectoires précises.

Re : Attribution des couleurs du tracé SankeyVous avez tout à fait raison !
Re : Attribution des couleurs du tracé SankeyVraiment. Un graphique de Sankey serait toujours la meilleure visualisation pour le suivi des profils.
Re : Attribution des couleurs du tracé SankeyQue pensez-vous de la proposition dans Parallel Plot : axes synchronisés ?
utilisez la même position « Y » pour identifier la même « valeur ».
Cette option est déjà disponible pour les colonnes avec un type de modélisation « continu » (non nominal).
On peut ajuster la largeur de la ligne pour obtenir un graphique plus esthétique.
Malheureusement, il n'y a aucune possibilité d'utiliser la largeur de ligne pour représenter la fraction / population.
La couleur peut être utilisée pour identifier un autre type d’information :
traitement initial :

nombre de traitements différents :

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