我相信您需要做的是向您的Graph Builder中添加一个自定义的JSL。 可以寻址每个单独的图,并且可以编写脚本以将适当的N值添加到每个图中。下面是一个基于简单图形的非常简单的示例,但是它应该使您了解如何执行此操作

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 525, 496 ),
Show Control Panel( 0 ),
Variables(
X( :weight ),
Y( :height ),
Group X( :age ),
Overlay( :sex )
),
Elements( Line( X, Y, Legend( 8 ) ) )
);
// Get the counts for each of the ages
Summarize( dt, groupBy = By( :Age ), N = Count( :Age ) );
// Make sure stats are complete before moving on
wait(0);
// Find the upper right corner axis values so one can back off a bit and place
// the values of N in an appropriate place
// Place the values into a list, which is required for the graphic function
// that is to be used
theList = {};
theList[1] = (Report( gb )[AxisBox( 1 )] << get max) * .85;
theList[2] = (Report( gb )[AxisBox( 2 )] << get max) * .95;
// Now Place the values
For( i = 1, i <= N Items( n ), i++,
val = "N=" || Char( n[i] );show(val);
Report( gb )[FrameBox( i )] <<
add graphics script( Text( Center Justified, theList, val ) );
);谢谢!我以前从未遇到过几个JSL命令,我认为这对我的解决方案至关重要。
我通常生成的数据可视化之一是一组X / Y数据,这些数据按二维类别的分类变量分组,以生成图的正方形阵列:请参见示例。我进一步覆盖 X / Y数据由观察ID组成,以便将一个观察的所有数据点与一条线连接起来(将另一个变量放入颜色轴,以保持结果图的可读性)。
由于技术原因,我不能保证此图组中的每个像元都具有相同的占用率。因此,使用我创建的数据的团队成员需要准确知道每个单元格中存在多少个观测值(观测值ID的唯一值),因为否则可视化效果可能会产生误导。
因为我正在使用覆盖轴,如果我使用字幕框那么我就为观察ID的每个值获得一个标题:我被要求提供的是每个单元格一个字幕,计算该单元格中存在的观察ID的唯一值的数量。
当然,可以通过在每个单元格中手动添加标签来解决此问题,但这显然很麻烦。我当然可以提供其他可视化效果,但是我的团队成员已要求进行这种特定的可视化效果。
我是否忽略了可以简单地实现此目的的功能?
