您好,我是 jsl 的初学者。 我有一个关于保存到PPT时设置图片大小的问题。
当我尝试保存二元图时,下面的脚本确实有效。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ), Group By(:sex), Fit Line({report(0)}) );
rbiv = biv << report;
rbiv[Framebox(1)] << row legend(:sex, color(1), marker(1));
rbiv << Save Presentation( "$TEMP/jmp_example.pptx");
rbiv[Framebox(1)] << frame size(1500,480);
rbiv << Save Presentation( "$TEMP/jmp_example.pptx", append );
Open( "$TEMP/jmp_example.pptx" );
但是,当我尝试从图形构建器保存图形时,下面的脚本似乎不起作用。
因此,我的问题是如何在通过 JSL 导出到 PPT 时设置图形大小,尤其是在图形生成器的图形中。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv =Graph Builder(
Size( 755, 297 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Bar( X, Y, Legend( 4 ) ) )
);
rbiv = biv << report;
rbiv[Framebox(1)] << row legend(:sex, color(1), marker(1));
rbiv << Save Presentation( "$TEMP/jmp_example.pptx");
rbiv[Framebox(1)] << frame size(1400, 600);
rbiv << Save Presentation( "$TEMP/jmp_example.pptx", append );
Open( "$TEMP/jmp_example.pptx" );
你好@梁雅涵,感谢您提供易于重现的示例。
看起来您遇到了 JMP 中较难调试的部分之一,即向尚未创建的对象发送消息时。 wait(0) 语句通常会解决以下情况:当您一次执行一行时(就像这一行一样),某些东西可以交互地按预期工作,但在一起运行时却不起作用。在这种情况下,添加一个 Wait(0);在帧大小消息应该解决您的问题之前。
等待功能将允许 JMP 绘制所有元素并“赶上”到您每次以交互方式运行一行时所处的位置。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv =Graph Builder(
Size( 755, 297 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Bar( X, Y, Legend( 4 ) ) )
);
rbiv = biv << report;
rbiv[Framebox(1)] << row legend(:sex, color(1), marker(1));
rbiv << Save Presentation( "$TEMP/jmp_example2.pptx");
wait(0);
rbiv[Framebox(1)] << frame size(1400, 600);
rbiv << Save Presentation( "$TEMP/jmp_example2.pptx", append );
Open( "$TEMP/jmp_example2.pptx" );