Bubble Plot 'traverse niveaux' erreur<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
J'essaie de créer un complot animé de bulles et je rencontre des problèmes.
Sur chaque ligne, j'ai un "état", un "pas", un "temps" et un "identifiant". L'ID est unique pour un ensemble de lignes (avec les étapes 1 à 10, avec des états variables).
Mes lignes de données ont une «durée» variable, c'est-à-dire. certains identifiants ont des horaires différents des autres identifiants. Dans certains cas, le temps se chevauche également, c.-à-d. un "ID" a plusieurs "Pas" ou "Etats" avec le même temps.
Lorsque je classe la colonne time dans un nombre d'intervalles plus grands, le graphique à bulles commence et fonctionne, mais uniquement SI je crée des bacs suffisamment grands. Cependant, l'erreur suivante est affichée dans le journal:
La colonne ID 'singleID' traverse les niveaux avec la colonne d'axe catégorique 'Step'. Changer l'ID en "Pas à pas"?
La colonne ID 'singleID' traverse les niveaux avec la colonne d'axe catégorique 'State'. Changer l'ID en "Etat"?
Lorsque je ne classe pas l'heure dans un certain nombre d'intervalles, le tracé en bulle ne démarre pas complètement et JMP me demande de remplacer l'ID par les autres colonnes. Lorsque je refuse, le tracé en bulle n'est pas lancé et le message d'erreur suivant s'affiche:
La colonne ID 'singleID' traverse les niveaux avec la colonne d'axe catégorique 'Step'. Changer l'ID en "Pas à pas"?
La colonne ID 'singleID' traverse les niveaux avec la colonne d'axe catégorique 'State'. Changer l'ID en "Etat"?
DisplayBox []
Impossible d'allouer suffisamment de mémoire lors de l'accès ou de l'évaluation de 'Tracé à bulles', Tracé à bulles (
Lancer le dialogue,
X (: Step),
Y (: Etat),
Heure (: binTimeCentred),
Coloration (: condition d'arrêt),
ID (: ID unique)
)
Mes excuses pour ne pas inclure un exemple, préparer un exemple que je pourrais mettre en ligne prendrait un certain temps. J'espérais donc si quelqu'un avait des idées sur la façon de résoudre ce problème en se basant uniquement sur la description.
Meilleur,
Re: Bubble Plot 'traverse les niveaux' erreurFaçon intéressante de visualiser les transitions Dan. Il serait également puissant de placer le dernier état de chaque chaîne sur l'axe des x. D’autres analyses, j’ai découvert que certains États ne conduiraient jamais (ou conduiraient toujours) à un certain état final. Des visualisations comme celle-ci fonctionnent très bien en combinaison avec le transfert de sélections vers d'autres plateformes.
J'ai expérimenté des moyens de visualiser toutes les chaînes observées à la fois. J'ai inclus une colonne dans l'exemple de données qui contient l'état d'une ligne et tous les états précédents dans sa chaîne (: statepath), j'ai également affecté des couleurs en fonction de l'état de la ligne et fait: indiquer le libellé de la ligne. Cette information peut être utilisée pour créer quelque chose qui ressemble à une arborescence de toutes les chaînes possibles. J'utilise un graphique à barres empilées pour afficher cette information. Chaque étape est une barre, chaque segment de la barre un état dans cette branche de l’arbre. Vous pouvez lire le graphique de gauche à droite. Chaque segment d'une barre en une étape se scinde en plusieurs segments dans la barre suivante (: step). Changer le nombre de "niveaux visibles" sur l'axe des x supérieur vous permet de parcourir le graphique.
N'hésitez pas à donner votre avis.

Générateur de graphes (
Taille ( 1142 , 591 ) ,
Afficher le panneau de configuration ( 0 ) ,
Afficher la légende ( 0 ) ,
Variables ( Y ( : Clé ) , Groupe X ( : Étape ) , Recouvrir ( : statepath ) ) ,
Éléments (
Bar (
Y ,
Légende ( 5 ) ,
Style de bar ( "Empilés" ) ,
Résumé statistique ( "N" ) ,
Étiquette ( "Étiquette de rangée" )
)
)) ;
Re: Bubble Plot 'traverse les niveaux' erreurUne méthode intéressante pour résumer les données consiste à ajouter une colonne "Etat antérieur":
Tableau de données ( "données de test de tracé à bulles" ) << Nouvelle colonne ( "PrevState" ,
Type de données ( Personnage ) ,
Formule ( La gauche ( Droite ( : statepath , 4 ) , 2 ) ) ,
Définir la propriété ( Étiquettes de valeur , Arg ( : Etat << Obtenir la propriété ( Étiquettes de valeur ) , 1 ) ) ,
Définir la propriété ( Commande de valeur , : Etat << Obtenir la propriété ( Commande de valeur ) )
) ;
Avec cette colonne ajoutée, une carte de chaleur Graph Builder indique la fréquence de chaque transition:
Générateur de graphes (
Afficher le panneau de configuration ( 0 ) ,
Variables ( X ( : PrevState ) , Y ( : Etat ) ) ,
Éléments ( Carte de chaleur ( X , Y , Légende ( 3 ) ) ) ,
Filtre de données local (
Emplacement ( { 642 , 61 } ) ,
Mode ( Sélectionner ( 0 ) , Spectacle ( 1 ) , Comprendre ( 1 ) ) ,
Ajouter un filtre (
des colonnes ( : Etat ) ,
Où ( : Etat == { "01" , "02" , "03" , "dix" , "11" , "12" , "20" , "21" , "22" , "30" } ) ,
Afficher ( : Etat , Taille ( 204 , 174 ) , Affichage de la liste )
)
)
) ;
J'ai utilisé un filtre de données local pour exclure les transitions vers un état "00" (manquant). Lorsque vous vous arrêtez sur une cellule, l'info-bulle de survol affiche le nombre de transitions correspondantes:

Cette vue peut être utilisée en combinaison avec d'autres plates-formes pour sélectionner et mettre en évidence certaines transitions.
Re: Bubble Plot 'traverse les niveaux' erreurMerci Dan pour ta réponse élaborée. Vos approches alternatives sont intéressantes et votre explication sur l’utilisation de la mémoire en fonction du temps de tri a été très utile. Il est bon de savoir que le binning est une solution dans cette situation, même si cela implique de perdre la visualisation de certaines transitions.
Merci!
Re: Bubble Plot 'traverse les niveaux' erreurSalut gv,
Merci pour les données et l'exemple de script - il est très utile de voir le cas que vous regardez. Sur les questions:
- Mémoire - afin de faire l'animation, Bubble Plot stockera la position de chaque bulle à chaque heure unique. Sur vos 250 000 lignes, je vois 83 000 valeurs temporelles non manquantes, et plus de 5 000 d'entre elles sont uniques. Étant donné que chaque bulle ne persiste que pendant 10 étapes, les valeurs de temps de 5 Ko nécessitent un peu de mémoire (7,7 Go sur ma machine, par rapport à 1,5 Go dans votre exemple regroupé).
- Le binning prend tout son sens compte tenu de ce qui précède. Aucune agrégation n'est effectuée entre identifiants, vous ne perdrez donc aucune bulle, mais vous perdrez la possibilité de voir certaines transitions d'état se produire très rapidement - dans la taille du chutier.
- Il n'y a aucun moyen d'éviter le dialogue "niveaux croisés" pour une utilisation interactive, mais lorsqu'il est exécuté à partir d'un script, le message est simplement écrit dans le journal, sans interruption.
Si l'animation temporelle n'est pas si importante, d'autres plates-formes pourraient être utiles. Cet exemple utilise un élément Ligne de générateur de graphismes avec le rôle Superposition pour afficher toutes les transitions en même temps:
Générateur de graphes (
Afficher le panneau de configuration ( 0 ) ,
Variables ( X ( : Étape ) , Y ( : Etat ) , Recouvrir ( : Identifiant unique ) ) ,
Éléments (
Ligne ( X , Y , Légende ( 3 ) , Ordre de rangée ( 0 ) , Résumé statistique ( "Signifier" ) )
) ,
) ;

Dans ce graphique, si vous faites glisser une partie d’une ligne, vous sélectionnez toutes les lignes ayant le même identifiant.
Si vous modifiez les données pour inclure toutes les transitions d'états sur une seule ligne:
Tableau de données ( "données de test de tracé à bulles" ) << Divisé (
Divisé par ( : Étape ) ,
Divisé ( : Etat ) ,
Groupe ( : Identifiant unique )
)
vous pouvez ensuite utiliser la plate-forme Parallel Plot pour afficher une vue similaire. Sur cette plate-forme, vous pouvez cliquer avec le bouton droit de la souris sur> Personnaliser pour définir la transparence de la polyligne sur 0,01. Cela vous donnera une vue ombrée où les transitions les plus communes sont plus sombres, et les transitions moins communes sont estompées. Si vous sélectionnez un segment dans une ligne, le dessin en surbrillance sera mis en évidence:

Parcelle parallèle (
Échelle uniforme ( 0 ) ,
Centre à zéro ( 0 ) ,
Y (
: prénom ( "1" ) ,
: prénom ( "2" ) ,
: prénom ( "3" ) ,
: prénom ( "4" ) ,
: prénom ( "5" ) ,
: prénom ( "6" ) ,
: prénom ( "7" ) ,
: prénom ( "8" ),
: prénom ( "9" ) ,
: prénom ( "dix" )
) ,
SendToReport (
Envoi (
{} ,
"Coord parallèle" ,
FrameBox ,
{ Taille du cadre ( 633 , 420 ) , DispatchSeg (
PolylineSeg ( 1 ) ,
{ Transparence ( 0,01 )}
)}
)
)
) ;
J'espère que ces idées sont utiles!
-Dan
Re: Bubble Plot 'traverse les niveaux' erreurSalut Dan
Merci pour votre réponse et vos explications. J'ai plusieurs lignes pour chaque ID (: uniqueID), mais elles correspondent à des valeurs différentes de l'axe X (: Step) et à des valeurs de temps (: starttimestate ou (: binTimeCentred). Je suis perdu pourquoi cela serait considéré comme un problème puisque le but de l'ID est de suivre une bulle parmi les autres paramètres, non? Mais peut-être me manque quelque chose. J'ai inclus des données. Au fait, je suis lié à l’utilisation de la version 32 bits (11.1.1), ce qui n’aidera probablement pas non plus à résoudre les problèmes de mémoire.
Mes données décrivent une «chaîne» (séquence) d'états (: État) qui se produit lors de la réplication d'une simulation (: clé). Plusieurs chaînes peuvent exister pour une clé: clé. Les états se succèdent en plusieurs étapes (: Step) dans ce que l’on appelle une chaîne. Chaque nouvelle étape d'une chaîne est un état différent de l'état précédent et qui survient à un moment donné (: StartTimestate). Cela crée environ 255 combinaisons différentes d’étapes (: ID). Mais au total, environ 25 000 chaînes sont observées (: uniqueID). Chaque chaîne comporte toujours 10 étapes mais des données peuvent être manquantes.
Ce que j'essaie de réaliser est une visualisation de la manière dont les chaînes se comportent dans les dimensions "état" et "temps". Je voudrais montrer comment une bulle de chaque chaîne (: UniqueID) se déplace dans ses pas (axe des x) au fil du temps et comment son état (axe des y) change. Le résultat serait donc un graphique à bulles dans lequel les bulles se déplacent toujours de gauche à droite (: étape), mais se comportent différemment en se déplaçant de haut en bas (: état). Je pense que ce serait une manière amusante de visualiser les motifs dans un jeu de données multidimensionnel assez volumineux. Le script sera utilisé dans une interface utilisateur. Je préférerais donc que des avertissements n'apparaissent pas. Lors de l'utilisation de la variable: starttimestate car time serait génial, mais cela déclenche l'erreur 'memory'. Étrangement, utiliser des intervalles de temps (assez grands) (: binttimecentred) fonctionne, je dis étrangement parce que cela ne modifie pas le nombre d'identifiants.
Toutes les idées sont les bienvenues, y compris sur la manière de supprimer l'erreur «niveaux croisés»
Merci encore!
Scénario:
tableau de données ("données de test de tracé de bulles") << tracé de bulles (
X (: Step),
Y (: Etat),
Heure (: binTimeCentred),
Coloration (: condition d'arrêt),
ID (: UniqueID),
Taille de la bulle (15.24),
Indice de temps (2.5),
Formes d'Orient (1),
Label ("Aucun"),
Lignes de sentier ("Sélectionné"),
Définir la forme ("Triangle"),
Titre (8, 5.11),
SendToReport (
Envoi(
{},
"1",
ScaleBox,
{Min (-0,5), Max (9,5), Inc (1), tiques mineures (0)}
),
Envoi(
{},
"2",
ScaleBox,
{Min (-0,5), Max (10,5), Inc (1), tiques mineures (0)}
)
)
)
Re: Bubble Plot 'traverse les niveaux' erreurSalut gv,
L'erreur 'Niveaux croisés' est simplement un avertissement, car dans de nombreux cas, ce n'est pas ce à quoi le client s'attendait.
Lorsque vous avez un axe catégorique et deux lignes avec le même ID mappant sur des valeurs différentes sur l’axe, la question est de savoir où placer la bulle. Si vous refusez de modifier les variables, cela devrait quand même fonctionner, mais il est plus difficile de lire les valeurs du graphique. On ne sait peut-être pas si une bulle sur X = "Caroline du Nord" représente réellement des observations de la Caroline du Nord ou si la bulle représente une agrégation de deux bulles avec X = "Virginie" et X = "Caroline du Sud". La "moyenne" est simplement basée sur les ordres de valeur de la colonne catégorique, ainsi toute combinaison est possible.
Je crois que votre problème de mémoire est lié au (nombre d'identifiants) x (nombre de fois). Si vous avez beaucoup d'identifiants qui ne contiennent des données que pendant un petit sous-ensemble de fois, les besoins en stockage peuvent être plus importants que prévu. Si vous pouvez partager un ensemble de données ou commenter davantage les caractéristiques des données, nous pouvons confirmer qu'il s'agit bien du problème.
-Dan
Re: Bubble Plot 'traverse les niveaux' erreurBonjour,
Je serais toujours intéressé par toutes les suggestions que vous pourriez avoir. L'un des professionnels de JMP pourrait peut-être commenter l'importance de l'erreur «Niveaux croisés», car elle n'est mentionnée dans aucune des documentations disponibles. En outre, leur nombre semble être une limite à la quantité de données pouvant être utilisée dans un graphique à bulles, car je reçois également un message «ne peut pas allouer suffisamment de mémoire», ou cela pourrait-il être causé par une erreur dans mes données d'entrée? Malheureusement, je n'ai pas pu reproduire l'erreur avec les exemples de données utilisés dans l'exemple du tracé en bulle: ( Exemple de tracé à bulles dynamiques ).
Meilleur,