這僅供參考,因為問題是關於通過 JSL 更改標記。
一個常見的請求是根據另一列的行值或條件設置特殊標記。 下面的腳本顯示了擴展 ASCII 字符集的標記和兩個特殊符號的示例,例如使用該函數的星號或無窮大符號
十六進制轉數字( “十六進制代碼” ) 。 運行腳本,等待一段時間,然後更改第 4 行和第 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");
您還可以通過右鍵單擊圖例中的標記並選擇“標記”>“+”來設置圖表中的標記。您需要對所有標記執行此操作。然後單擊紅色三角形將腳本保存在某處。它看起來像這樣:
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 ) )
)}
)
)
);
如果您想讓腳本更易於閱讀,您還可以使用像 Marker("Plus") 這樣的名稱
您需要了解 JMP 行狀態。 它們對於控制 JMP 平台的行為至關重要。 在這種情況下,您需要更改標記行狀態。 默認標記狀態是點。 您可以以交互方式選擇所有行,選擇“行”>“標記”>“+”,然後取消選擇所有行。 行狀態更改被推送到所有對象(“動態鏈接”),因此您不必在啟動平台之前更改行狀態。
有數據表消息可以在腳本中完成相同的事情:
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;