CIAO,
Ho alcuni script che generano grafici che assomigliano a questo:

Ma vorrei che fosse sempre così:

Come posso farlo usando JSL?
Questo è solo un FYI, poiché la domanda riguardava la modifica dei marcatori con JSL.
Una richiesta frequente consiste nell'impostare un contrassegno speciale in base al valore o alla condizione della riga di un'altra colonna. Lo script seguente mostra i marcatori del set di caratteri ASCII esteso e due esempi di simboli speciali, come una stella o un segno di infinito utilizzando la funzione
Da esadecimale a numero( "codice esadecimale" ) . Esegui lo script, c'è un'attesa, quindi i marcatori vengono modificati per le righe 4 e 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");
È inoltre possibile impostare l'indicatore nel grafico facendo clic con il pulsante destro del mouse sull'indicatore nella legenda e selezionando Indicatore > +.Devi farlo per tutti i marcatori.Quindi fai clic sul triangolo rosso e salva lo script da qualche parte.Sembrerà così:
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 ) )
)}
)
)
);
Se desideri rendere lo script più leggibile dall'uomo, puoi anche utilizzare nomi come Marker("Plus")
È necessario comprendere gli stati delle righe di JMP. Sono fondamentali per controllare il comportamento delle piattaforme JMP. In questo caso, è necessario modificare lo stato della riga Marker. Lo stato del marcatore predefinito è un punto. È possibile selezionare in modo interattivo tutte le righe, selezionare Righe > Indicatore > "+", quindi deselezionare tutte le righe. Le modifiche allo stato della riga vengono inviate a tutti gli oggetti ("collegamento dinamico"), quindi non è necessario modificare lo stato della riga prima di avviare la piattaforma.
Esistono messaggi di tabelle di dati per eseguire la stessa operazione in uno 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;