这仅供参考,因为问题是关于通过 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;