mettre en évidence les marqueurs de lignes particulières dans le tracé bivariéSalut
Essayer de mettre en évidence les marqueurs de lignes particulières dans le tracé bivarié.
J'ai créé manuellement le tracé, enregistré la fenêtre de script et sélectionné manuellement la colonne « Thème » comme légende de ligne.
Mais le problème est que je ne vois pas ces étapes ci-dessus dans le script lorsque je l'ai regardé !
Voici ce que je veux dire
dt = Open( "$sample_data/Hollywood Movies.jmp" );
dt = currentdatatable(); // Don't know I need this here anyway
Bivariate(
Y( :Domestic Gross ),
X( :Foreign Gross ),
Fit Where( :Genre == "Action", Fit Line( {Line Color( {212, 73, 88} )} ) ),
Fit Where(
:Genre == "Adventure",
Fit Line(
{Line Color( {61, 174, 70} )},
{Set α Level( 4.06068261874589e-315 )}
)
),
Fit Where( :Genre == "Animation", Fit Line( {Line Color( {66, 112, 221} )} ) ),
Fit Where( :Genre == "Comedy", Fit Line( {Line Color( {204, 121, 41} )} ) ),
Fit Where( :Genre == "Drama", Fit Line( {Line Color( {40, 182, 143} )} ) ),
Fit Where( :Genre == "Fantasy", Fit Line( {Line Color( {162, 43, 221} )} ) ),
Fit Where( :Genre == "Horror", Fit Line( {Line Color( {196, 189, 43} )} ) ),
Fit Where( :Genre == "Romance", Fit Line( {Line Color( {39, 174, 174} )} ) ),
Fit Where( :Genre == "Thriller", Fit Line( {Line Color( {197, 41, 201} )} ) ),
SendToReport( // What does this mean here ? Why we need this ?
Dispatch( // What does this mean here ? why we need this ?
{},
"Bivar Plot",
FrameBox,
{Frame Size( 377, 299 ), Row Legend(
Theme,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 1 ),
Marker Theme( "Standard" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);qui crée

Ce que je veux faire, c'est contrôler quelle colonne doit être une légende de ligne et mettre en surbrillance les lignes de cette colonne. Quelque chose comme ça

Je suis sûr que cela n'existe pas dans le manuel.
Re : mettre en surbrillance les marqueurs de lignes particulières dans un tracé bivariéNames Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 15 ),
New Column( "sex",
Character,
"Nominal",
Set Values(
{"F", "F", "F", "F", "F", "M", "M", "M", "F", "F", "F", "M", "M", "M",
"M"}
)
),
New Column( "height",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59] )
),
New Column( "weight",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values(
[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79]
)
),
Set Row States(
[192, 193, 193, 193, 193, 32833, 32833, 32832, 192, 192, 192, 32832, 32832,
32832, 32832]
)
);
// Here is the Bivariate Platform. It will honor the rowstates
// I have provided some selections, etc. but you can change them
// to whatever selections you want
Bivariate(
Y( :height ),
X( :weight ),
Fit Where( :sex == "F", Fit Line( {Line Color( "Medium Dark Red" )} ) ),
Fit Where( :sex == "M", Fit Line( {Line Color( "Medium Dark Blue" )} ) )
);
// Here is the code to create the new rowstate column
// But it can easily be done manually by just creating a new
// column, and then going to the Col Info window, and setting the
// data type to Row State
dt << New Column( "The RowStates", rowstate );
// This is the command that copies the rowstates from the
// rowstate column, to the new column called The RowStates<BR />// To do this interactively just go to the column panel and<BR />// right click on the red star in front of the new column<BR />// and select "Copy From Rowstates"
dt:The RowStates << copy from rowstates;
// dt:The RowStates << Hide(1); // This will hide the column from view
// The rest is manual(interactive);
// Go to the red triangle on the Bivariate output and select
// Save Script==>To Data Table
// Once it is saved, Go to the green triangle in front of the script that was just
// saved to the data table. Right click on the green triangle and select Edit
// Now add the following line as the first line
// :The RowStates << Copy to Row states;
// Make sure you remove the // from the front of the line
// Now, whenever you run the script, the row states from when you created the graph
// will be applied before the graph is createdRe : mettre en surbrillance les marqueurs de lignes particulières dans un tracé bivariéMerci pour la longue explication. Très utile en effet. J'ai aimé la partie " que vous pensez que c'est le graphique qui met en évidence les points (marqueurs).Mais hélas, c'est le tableau de données qui contrôle la mise en évidence. " C'est une excellente explication.
OTH, la question avec le point 2) comment faire ça ? Pour vous, avec des années d'expérience, juste une seconde à mettre en jsl, mais pour moi, il faudrait une semaine pour découvrir ce que vous vouliez vraiment dire là ou comment mettre en action. Je vous souhaite de publier ce script pour démontrer votre processus de réflexion afin que d'autres en profitent peut-être également 
Re : mettre en surbrillance les marqueurs de lignes particulières dans un tracé bivariéLa mise en évidence de marqueurs (points) spécifiques sur un tracé et la décoloration ultérieure des marqueurs restants sont en fait liées à la table de données et aux lignes sélectionnées dans une table de données. Si vous accédez à une table de données comportant un nuage de points bivarié créé à partir de ses colonnes et que vous sélectionnez l'une des lignes de la table de données, le point du graphique bivarié sera mis en surbrillance et tous les autres points seront estompés.Ce comportement, qui consiste à sélectionner une ou plusieurs lignes dans une table de données et à mettre en évidence cette ou ces lignes dans tous les graphiques associés à la table de données, est l'un des principes fondamentaux de JMP.Ainsi, le comportement que vous constatez lorsque vous cliquez sur une légende spécifique dans le graphique, ou sur un groupe de points (marqueurs) dans un graphique, n'indique en fait pas au graphique de mettre en évidence ces points, mais en réalité, c'est le cas. demander à la table de données de sélectionner des lignes spécifiques dans la table de données, et c'est ensuite cette action dans la table de données qui demande à tous les graphiques associés de mettre en évidence les points dans les graphiques qui représentent les données des lignes sélectionnées.Ce comportement existe dans JMP depuis ses débuts.Maintenant, pourquoi ai-je pris tout ce temps pour vous dire ça.Eh bien, votre description de votre ne pas comprendre pourquoi les points de données mis en évidence ne sont pas capturés dans votre script enregistré, m'a laissé entendre que vous pensez que c'est le graphique qui met en évidence les points (marqueurs).Mais hélas, c'est le tableau de données qui contrôle la mise en évidence.Cela étant, une façon de donner au graphique la mise en évidence souhaitée consiste à sélectionner les lignes du tableau de données que vous devez sélectionner pour créer les marqueurs en surbrillance, puis à enregistrer le tableau de données.La sélection de lignes dans le tableau de données sera enregistrée et, une fois ouverte et le script du graphique exécuté, il affichera le graphique comme vous le souhaitez.Ce n’est généralement pas la solution de choix.Trois autres méthodes pour gérer les marqueurs à mettre en évidence constituent généralement de meilleurs choix.
- Ajoutez manuellement le code au script, qui sélectionne spécifiquement la ou les lignes souhaitées ;
- Créez une nouvelle colonne de type de données "rowstate", configurez les sélections de table de données, les marqueurs, etc. selon vos besoins pour afficher comme vous souhaitez que le graphique soit affiché, puis enregistrez les Rowstates dans le nouveau. colonne d'état de ligne.Ensuite, ce que vous faites est d'ajouter l'instruction dans votre script enregistré, qui copie les valeurs d'état de ligne souhaitées de la colonne rowstate vers les états de ligne de la table de données, puis de générer le graphique.
- Utilisez un filtre de données local pour les sélections de lignes.Le filtre local ne sélectionne pas physiquement les lignes de la table de données.Au lieu de cela, il fournit un environnement de sélection virtuel pour la plate-forme spécifique, agissant exactement comme si une plate-forme avait été sélectionnée dans le tableau de données lui-même.Le filtre de données local est enregistré dans un script enregistré.
J'espère que cela a du sens.Si cela vous laisse d’autres questions, n’hésitez pas à les poser.