保存图片的 JSL 代码导致我的绘图格式颜色/标记/图例等松动。请帮助你好,
我正在使用以下代码来尝试保存可变性和时间趋势图的图片,它可以工作,但由于某种原因我丢失了绘图格式、颜色/标记/图例等。在这种情况下Flagging_Charts_Data_Var 和 Flagging_Charts_Data_Bivar 是我的变异性和时间趋势图的句柄。这可能是我所缺少的简单内容,请帮忙,谢谢!
//尝试将我的绘图保存为 png 的代码
Summary_Data_Flagging_Window = HListBox(Flagging_Charts_Data_Var,Flagging_Charts_Data_Bivar);
Summary_Data_Flagging_Window << 保存图片(file_name,png);
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请恭喜!
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请没关系弄清楚,再次感谢!
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请感谢您出色的解释和帮助,当我运行您附加的脚本时,它工作正常,但是当我更新代码时,它创建的 .png 文件是空白的,也许我仍然缺少一些东西?我不应该使用outlinebox[1]吗? 我在 Win8 上使用 JMP Pro 11.1.1。我还将整个代码放入循环中以创建多个 .png 图片,是否需要每次通过循环或摘要窗口更新 varpic 或 bivpic 变量?再次非常感谢,我想它已经越来越近了。
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请马特,
尝试附加的脚本。如果您没有 ac:/temp/ 驱动器,则需要更改路径。检查保存的颜色是否被删除。
根据经验,我只看到过以下有关颜色的问题:
- 运行脚本,在保存图片之前,调用一个数据表清除行状态。 在脚本中,您将看到语句 varpic = report(varchart)[OutlineBox(2)] 和 bivpic = report(biv)[OutlineBox(1)]。 通常,刚接触 JSL 的人认为这是按原样捕获图形,但实际上它只是创建活动(实时)窗口的句柄。 因此,在保存时,对数据表行状态的任何更改都将反映在图表上。
- 使用变量对框架框进行图形定制。 这些变量(而不是它们的值)被存储。 如果变量在保存图片之前发生更改或被删除,它们将不会显示在图片中。
- 大约 8 年前有一个例子,JMP 输出以及其他统计图形输出总是黑白的。它位于尚未定义默认打印机或图形卡的服务器上。 我只见过一次。
因此,如果附加的脚本保存颜色,并且您在关闭或更改行状态之前保存图片,那么这可能是您引用图形的方式。如果从twopics.png 中去除颜色,那么它是一个系统问题。
您应该记下您的操作系统和 JMP 版本。祝你好运
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请感谢您的回复,我不认为速度是问题,我认为您必须将绘图发送到 save picture() 命令的方式有些问题,但我对 JMP 不太熟悉,不知道答案,请问还有其他人可以帮忙吗?谢谢,马特
回复:保存图片的 JSL 代码导致我失去了绘图格式颜色/标记/图例等。请我的第一个想法是,在保存图片之前,绘图可能无法使用您的自定义格式完成绘制。我没有花时间确切地了解何时有必要,但为了安全起见,我特意在每次图像捕获或保存之前发送“<<更新窗口”。
这是一个过于复杂的例子,但是这个 3D 绘图工具插件使用更新窗口。您可以直接跳转到源代码GitHub;搜索“更新窗口”以查找相关行(当前为 145-148)。在这种情况下,更新窗口消息会先发送到“Scatterplot 3D”窗口,然后再将窗口内的图形捕获为图像。
//rotate the scatterplot
sp[1] << Frame3d( Set Rotation( x, y, z ) );
//make sure the plot is redrawn
sp[1] << update window;
//take a picture
img = (sp[1] << Find( Picture Box(1) )) << Get Picture;