图表区域外的注释
如果您在图形区域内进行注释(使用“工具”>“注释”),则复制时该文本将成为图形的一部分 - 图形区域外部的注释似乎不会随图形一起复制。
我想要的是一行代码,我可以将其放入每个脚本中,在每个图表的右下角(X 轴下方)用小文本标注 N,并将其与图表一起复制。
伪代码类似于 Text (<右下>, “n=” || char(<非排除行>))
所以多个子问题:
- 有没有技巧可以获取与图表一起复制的注释(通过“工具”>“注释”)?
- 您使用什么 JSL 代码将文本放置在图表背景的右下角? (例如,有没有办法在右下角定义原点?)
- 您使用什么 JSL 代码来获取表中未排除的行数? 看起来这应该是显而易见的(类似于 Rows() - Excluded Rows()),但我没有看到它......
JMP 17、macOS
是的,有一种方法可以将其放在图表区域下方,假设您有 JMP 17,并假设您正在使用图形生成器而不是 Fit Y by X 平台。 诀窍是添加一个标题框,然后将其设置为轴表,然后通过删除除一个标签之外的所有标签来覆盖默认值(另外,我必须将刻度标签更改为“短分隔符”以使每个标签都显示列在列联表中)。 这也可以通过脚本来完成;下面的例子。


dt = open ("$SAMPLE_DATA\Big Class.jmp");
//Caption box as regular axis table
graph_one = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :age ) ),
Elements(
Mosaic( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "N" ),
Location( "Axis Table" )
)
),
SendToReport(
Dispatch(
{},
"sex",
ScaleBox,
{Label Row( 1, Tick Mark Style( "Short Mark" ) ),
Label Row( 2, Tick Mark Style( "Short Divider" ) )}
)
)
);
//overwritten axis label with custom number (500)
graph_two = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :age ) ),
Elements(
Mosaic( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "N" ),
Location( "Axis Table" )
)
),
SendToReport(
Dispatch(
{},
"sex",
ScaleBox,
{Label Row( 1, Tick Mark Style( "Short Mark" ) ),
Label Row(
2,
{Tick Mark Style( "Short Divider" ),
Tick Mark( Label( "18" ), Label( "" ) ), //<----here
Tick Mark( Label( "22" ), Label( "500" ) )} //<--here
)}
)
)
);
谢谢! 这对于将数字放入图表本身非常有效(下面的示例)。 有没有办法把它放在图表区域下方?
它似乎是 LineupBox (或 AxisBox)的右下角,但我无法让你的方法与这些一起工作。 建议?

不确定问题 1,但这是一个使用 << 添加图形脚本将文本添加到图形生成器右下角的脚本
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
included_rows = N Rows(dt) - N Items(dt << Get Excluded Rows());
Text Color("Black");
Text(Right Justified,
{X Origin() + X Range(), Y Origin()},
Eval Insert("n=^included_rows^");
);
);

您应该能够将该脚本转换为表达式/函数/插件,然后可以轻松地重复使用。