如果我们在双变量函数中添加“by”,为什么轴箱脚本不会起作用?嗨,
我在指南中尝试了一个示例脚本,发现当我们在Bivariate图中添加“by”时,我们不能使用jsl进行轴操作。这有解决方法吗?谢谢。
有效的示例脚本:
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( X( :height ), Y( :weight ), FitLine );
rbiv = biv << report;
xaxis = rbiv[axis box( 2 )];
yaxis = rbiv[axis box( 1 )];
xaxis << Axis Settings( Show Major Grid( 1 ) );
yaxis << Axis Settings( Decimal( 10, 3 ) );
示例脚本不起作用。输出图,但不修改轴。
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( X( :height ), Y( :weight ), by(:sex), FitLine );
rbiv = biv << report;
xaxis = rbiv[axis box( 2 )];
yaxis = rbiv[axis box( 1 )];
xaxis << Axis Settings( Show Major Grid( 1 ) );
yaxis << Axis Settings( Decimal( 10, 3 ) );
谢谢,
Shaira
Re:如果我们在Bivariate函数中添加“by”,为什么轴箱脚本不会起作用? @txnelson ,谢谢!解决方案很整洁,我终于明白了这个问题。
Re:如果我们在Bivariate函数中添加“by”,为什么轴箱脚本不会起作用?问题是,您在By(:sex)配置中创建了2个不同的图形。 如果运行代码并在生成图表或图表后显示“biv”的值,则可以看到此信息。 如果您在图表的非按版本中显示“biv”,则“biv”的值为:
{Bivariate[]}
如果在By版本之后显示()“biv”的值,您将看到:
{Bivariate[], Bivariate[]}
有2套图表输出。 因此,这需要在代码中处理。 下面的脚本将向您展示一种方法:
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( X( :height ), Y( :weight ), by(:sex), FitLine );
For(i=1,i<=N items(biv),i++,
rbiv = (biv << report)[i];
xaxis = rbiv[axis box( 2 )];
yaxis = rbiv[axis box( 1 )];
xaxis << Axis Settings( Show Major Grid( 1 ) );
yaxis << Axis Settings( Decimal( 10, 3 ) );
);