我从一张图表生成了很多页面。 这是来自图表生成器。
我喜欢将每一页保存为一个图像文件。 这在 JMP 中可能吗?
谢谢,
戴夫
此外,按组版本还可以使用数据表来保存图表
The left-side data table was captured by the command on the right.左侧的数据表是通过右侧的命令捕获的。
此外,按组使用与页面选项大致相同,并且可以使用 xpath 提供更简单的解决方案。 要查看允许您使用按组代替页面的启动器,请红色三角形->重做->重新启动
Graph builder also has this traditional launcher dialog, mostly not needed.图形生成器也有这种传统的启动器对话框,但大多数情况下不需要。

好问题。 这是可以爬行显示树以收集各个部分的 JSL。 日志树在 17 到 18 之间发生了变化,并且可能会再次发生变化。 您可能可以直接在 graphbuilder 上执行 17 变体,但我发现使用期刊更容易,尤其是使用 JMP 18 Early Adopter 版本。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
g = dt << Graph Builder(
Size( 528, 2956 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Page( :age ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
// make a journal just for this task, the vanilla journal might be in use.
tempWindow = New Window( "temp", <<TYPE>= "18", // easier in 18, the journal groups the pictures
// moving the graphs to a journal window is the key; the elements are not
// grouped by pages in a usable displaybox tree in graphbuilder, but they
// are when graphbuilder sends them to a journal.
// now use xpath to extract the chunks you want. In this case, using the
// journal's showproperties, we discover there is a lineup box whose children
// are what is needed. Get those children as a list...
graphList = tempwindow << XPath( "//OutlineBox[text()='Graph Builder']//LineUpBox/ListBox" );
// save the pics; dig out a name for each one
For Each( {graph}, graphList,
// grab a name and keep the non-special characters for a disk file name
label = Regex( graph[LabelBox( 1 )] << gettext, "[^A-Za-z0-9]+", "_", GLOBALREPLACE );
// create the individual picture using the label for a filename
graph << savepicture( dir || label || ".png", "png" );
);
, // else harder in 17, find a way...
// at least for this example we find pairs of listboxes, without a listbox wrapper as in 18
labList = tempwindow << XPath( "//OutlineBox[text()='Graph Builder']//BorderBox//LabelBox" );
For Each( {lab}, lablist,
label = Regex( lab << gettext, "[^A-Za-z0-9]+", "_", GLOBALREPLACE );
parent = lab << parent; // use the journal's property sheet to see what is needed
spacer = parent << sib;
graph = spacer << sib;
combine = V List Box( parent, graph );
combine << savepicture( dir || label || ".png", "png" );
);
);
// just for fun, see what happened
fileList = Files In Directory( dir );
For Each( {file}, fileList, Open( dir || file ) );</TYPE>你好@davidmingyin -
无需任何脚本即可执行此操作的一种方法是将报告导出为 Powerpoint(文件 > 导出...)。 要在图形生成器中执行此操作,请在“页面”放置区域中放置一列。 在其他分析平台中,将变量分配给“按”列角色。
当您导出为 Powerpoint 时,每个单独的图表都将导出为单独幻灯片中的图像。
也许我没有正确理解你的答案@DMD 。 假设我有一个图形生成器 gb,它由几个页面组成。 然后
gb << 期刊();
当前日志() << 保存图片("\\ImageSaveLocation\ImageName.PNG");
当前日志() << 关闭窗口;
保存一张图像及其中的所有页面。 但我想要(这就是我的理解@davidmingyin )多个图像,每个页面都有自己的图像。
如果有人能提供帮助,我会非常高兴。 提前谢谢了!
是的,这是可能的。 如果您希望将每个图形生成器图表保存为图像,则可以分别为每个图形生成器图表(或图形生成器页面集合)编写脚本,如下所示:
gb << 期刊();
当前日志() << 保存图片("\\ImageSaveLocation\ImageName.PNG");
当前日志() << 关闭窗口;
gb2 << 日志();
当前日志() << 保存图片("\\ImageSaveLocation\ImageName2.PNG");
当前日志() << 关闭窗口;