Salut,
J'ai quelques scripts qui génèrent des graphiques qui ressemblent à ceci:

Mais j'aimerais que ça ressemble toujours à ça :

Comment puis-je faire cela en utilisant JSL?
Ceci est juste un FYI, puisque la question portait sur le changement de marqueurs par JSL.
Une demande fréquente consiste à définir un marqueur spécial basé sur la valeur ou la condition de ligne d'une autre colonne. Le script ci-dessous montre les marqueurs du jeu de caractères ASCII étendu et deux exemples de symboles spéciaux, comme une étoile ou un signe infini en utilisant la fonction
Hexa vers Nombre( "code hexadécimal" ) . Exécutez le script, il y a une attente, puis les marqueurs sont modifiés pour les lignes 4 et 5.
Names Default to Here(1);
Markers_dt = New Table( "Marker Codes",
Add Rows( 301 ),
New Column( "Marker Number", Numeric)
);
Markers_dt:Marker Number << Set Each Value(Row() -1);
For( i = 1, i <= N Row( Markers_dt ), i++,
Marker Of( Row State( i ) ) = i-1;// Markers_dt:Marker Number[i]
);
wait(2);
Row State(4) = Combine States(
Selected State(1), Hidden State(1),
Color State("Dark Blue Green"),
Marker State( Hex to Number("221E") ) //Hex for unicode infinity
);
Markers_dt:Marker Number[4] = Hex to Number("221E");
Marker Of(Row State(5))= Hex to Number("2606"); //Hex for star
Markers_dt:Marker Number[5] = Hex to Number("2606");
Vous pouvez également définir le marqueur dans le graphique en cliquant avec le bouton droit sur le marqueur dans la légende et en sélectionnant Marqueur > +.Vous devez le faire pour tous les marqueurs.Cliquez ensuite sur le triangle rouge pour enregistrer le script quelque part.Il ressemblera à ceci:
dt = New Table( "Untitled", Add Rows( 11 ),
New Column( "X Value", Character, "Nominal",
Set Values(
{"02", "02", "02", "03", "03", "03", "04", "04", "05", "05", "05"}
)
),
New Column( "Y Value", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [100, 120, 130, 110, 105, 108, 200, 220, 201, 190, 195] )
)
);
dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :X Value ), Y( :Y Value ), Overlay( :X Value ) ),
Elements( Points( X, Y, Legend( 14 ), Jitter( "None" ) ) ),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
14,
Properties( 0, {Marker( "Plus" )}, Item ID( "02", 1 ) ),
Properties( 1, {Marker( "Plus" )}, Item ID( "03", 1 ) ),
Properties( 2, {Marker( "Plus" )}, Item ID( "04", 1 ) ),
Properties( 3, {Marker( "Plus" )}, Item ID( "05", 1 ) ),
Properties( -1, {Marker( "Plus" )}, Item ID( "Y Value", 1 ) )
)}
)
)
);
Si vous souhaitez rendre le script plus lisible par l'homme, vous pouvez également utiliser des noms tels que Marker("Plus")
Vous devez comprendre les états des lignes JMP. Ils sont fondamentaux pour contrôler le comportement des plates-formes JMP. Dans ce cas, vous devez modifier l'état de la ligne Marqueur. L'état du marqueur par défaut est un point. Vous pouvez sélectionner toutes les lignes de manière interactive, sélectionner Lignes > Marqueur > "+", puis désélectionner toutes les lignes. Les changements d'état de ligne sont transmis à tous les objets ("liaison dynamique") afin que vous n'ayez pas à modifier l'état de ligne avant de lancer la plate-forme.
Il existe des messages de table de données pour accomplir la même chose dans un script :
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :weight ), X( :height ) );
Wait( 2 );
dt << Select All Rows << Markers( 1 ) << Clear Select;