Association de segments multiples avec des états de table / ligne de donnéesExiste-t-il un moyen d'associer des segments multiples à une table de données, comme vous pouvez le faire avec markerseg (), de sorte que la sélection du segment surligne également les lignes?
Par exemple
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
fps = polyseg([70, 90, 90, 70], [30, 30, 10, 10]);
fb << append seg(fps);
mps = polyseg([10, 30, 30, 10], [30, 30, 10, 10]);
fb << append seg(mps);
ms = markerseg([80, 20], [50, 50], row states(dt_sum));
fb << append seg(ms);
//can I assign fps to row 1 and mps to row 2 so that when I click them
// they select in both tables (since the tables are linked)Re: association de segments multiples avec des états de table / ligne de donnéesOh cool! Je les ai utilisés, mais j'ai oublié que cela autorisait les états de ligne. Merci!
Re: association de segments multiples avec des états de table / ligne de donnéesJ'ai trouvé que shapeseg () me permettait de vraiment mapper sur les états de lignes, ce qui prenait un peu de temps à apprendre à utiliser, mais maintenant cela fonctionne plutôt bien.
Re: association de segments multiples avec des états de table / ligne de donnéesOups, j'ai oublié d'ajouter le script pour trouver les centres des polygones. Je crois que c'est une fonction de JMP 14. Ainsi, si vous utilisez une version antérieure, utilisez le premier point du polygone, ce qui rend le point très petit et la largeur de la ligne du polygone égale ou supérieure à 2, alors le point doit être "invisible".
Notez que je crée le point en premier pour qu'il soit en arrière-plan. Comme vous l'avez indiqué, JMP implémente toutes les caractéristiques d'état des lignes par point. Ainsi, les modes de sélection comme fondu lorsque non sélectionné sont visibles pour les points.
Cette solution n’est que partielle en ce sens qu’elle ne permet que la synchronisation des couleurs avec le tableau. Ce serait bien d'avoir cette fonctionnalité pour les courbes et les polygones. Il serait également agréable d’avoir accès à la mousebox / callback associée à chaque framebox intégré, ou de référencer une framebos et d’ajouter la mousebox.
Re: association de segments multiples avec des états de table / ligne de donnéesVince,
Essayez le script ci-joint. Ce n'est pas une solution complète. Ce script s'appuie sur le gestionnaire d'état des lignes, qui est évidemment intégré aux segments de marqueurs. Sans les segments de marqueurs, ce script aurait besoin d'ajouter un gestionnaire d'état de ligne défini sur cet affichage. La fonction de gestionnaire doit envoyer un fichier Inval au framebox et à la fenêtre de mise à jour lorsqu'un état de ligne est modifié.
Pour étendre ce script, je chercherais le centre du polygone et ajouterais un markerseg afin que tous les scripts supplémentaires soient gérés par le code intégré JMP existant.
J'espère que cela t'aides.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
mpolyseg = Function({xmat, ymat, states=[]},{i,scrp=Expr(Glue()), c, rs=0},
show(states);
if(
IsMatrix(states) & nrow(states)==0
| //or
IsList(states) & nitems(states) ==0,
states=J(nrow(xmat),1,0),
Type(states) == "Table",
rs=1
);
For(i=1, i<=nrow(xmat), i++,
If(rs,
c = Parse(EvalInsert("Color Of(As Row State((^states^<<GET row="" states=""></GET>Cette fonction permet également de spécifier des états ou des couleurs fixes.
Une autre méthode consisterait à créer un gestionnaire d’état de ligne, à rechercher toutes les fenêtres et à rechercher tous les cadres (à l’aide de xpath) et à valider et mettre à jour la fenêtre.