你好,
我制作了一个脚本,让用户选择一个 excel 文件,对其进行处理,向其添加或制定列,打开图形生成器并使用本地数据过滤器对其进行绘图。
我的问题是:
1. 如何使用脚本保存选择本地数据过滤选项的图表? 例如,我有 2 个本地数据过滤器,比如 Trimset(10, 100, 101, 110, 111, 1000, 11111) 和公式(是或否),我需要绘制类似(所有修剪值与公式 NO)和(每个修剪值都带有公式 YES).. 所以总共有 8 个图表。
2. 在我的图表中,我希望包含图表下方的语句“Trimset 为 .... 且公式为 NO”。
3. 将图形保存在 png 或 jpeg 文件的文件夹中
4.JMP 数据表和图形生成器表退出而不保存。
5.如何制作插件功能使其成为单击操作,因为我需要为100个或更多文件执行此操作?
我一直在阅读所有讨论,但我无法得到正确的答案。 我真的很感谢你的帮助。
谢谢
是的,可以使用 For 循环。JSL 是一种非常完整的语言,具有计算机语言所期望的所有功能。
我建议您阅读 Scripting Guide 的前几章,以便了解该语言的所有组件以及如何实现它们。
如果您能给我一些有关您使用的计算机语言的信息,它将帮助我以您熟悉的术语为您提供 JSL 示例。
这是一种不同的方法,不使用数据过滤器:
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
deletedirectory("$temp/myPics");
createDirectory("$temp/myPics");
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
eval(evalexpr(biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Automatic Recalc( 1 ),
Fit Line( {Line Color( {213, 72, 87} )} ),
where( age == expr(thisAge) & sex == expr(thisSex) )
)));
parentBox = Report( biv ) << parent;
picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
biv<<CLOSEWINDOW></CLOSEWINDOW>
Files In Directory("$temp/myPics") = {"age12sexF.png", "age12sexM.png", "age13sexF.png", "age13sexM.png", "age14sexF.png", "age14sexM.png", "age15sexF.png", "age15sexM.png", "age16sexF.png", "age16sexM.png", "age17sexF.png", "age17sexM.png"};
where clause above graph图上方的 where 子句
在这种情况下,where 子句在平台的输出之上,所以我使用 <回复:将图形保存为 PNG 或 JPEG
我的第一点是,您不应该阅读讨论来学习如何编写 JMP 脚本。您应该阅读 JSL 脚本指南。
帮助==>书籍==>脚本指南
然后,如果您无法正常工作,那么讨论社区是可以帮助您的绝佳资源。
让我来看看你问的问题。
1.如何使用本地数据过滤器然后保存输出。
下面是一个粗略的脚本,它将向您展示如何以一种非常奇怪的方式执行此操作
dt=Open(<PATH to="" your="" data="https://community.jmp.com/" table="">);
gb=Graph Builder(
Size( 527, 453 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 13 ) ), Smoother( X, Y, Legend( 14 ) ) )
);
Thefilter=gb<<LOCAL data="https://community.jmp.com/" filter=""></LOCAL></PATH>
图形构建器和每个本地过滤器的代码位于红色三角形下方。如果您选择它们并转到“保存脚本”,您将获得不同情况所需的代码。只需启动 Graph Builder。然后保存图形生成器的脚本。然后打开本地过滤器。将其设置为您的第一个案例(where 子句),然后保存它的脚本。接下来,将本地过滤器更改为下一个案例并保存它的脚本......等等。
2.图下方的语句保存为png
3. 您只需要在保存图片功能中指定路径。这可以以编程方式处理,以便它可以遵循您想要使用的任何命名方法。
4. 示例脚本显示了执行此操作的方法
5. Scripting Guide 中有关于如何制作插件的非常好的文档。这是一个太长的答案,无法在讨论中处理