将图像从目录添加到数据表朋友们,我正在运行 JMP12,我想在我的数据表中添加一系列 PNG 图像。我想这样做,以便我可以将它们用作统计均值匹配标志散点图上的标签,并通过将鼠标悬停在每个标志的值上来调用 PNG(控制限制图的图像)。我发现了 Gail Massari 的 SAS 视频,该视频从维基百科的 Web URL 导入了州鸟图片;与他不同的是,我的图像位于本地硬盘驱动器上的文件夹中。
我已经尝试了以下说明:
{"",{ newimage(open("drive:\file path\filename.png",png))}" 作为每一行中的一个条目,但我得到的只是一个“Empty()”输出。
我是 JSL 脚本的新手,我的想法已经用完了。
回复:将图像从目录添加到数据表在打开之前,使用函数 If (File Exits(), Open(); 等; );
For( i = 1, i <= nr, i++,
If ( File Exists( :PNG_URL[i]|| ".png" ),
// do this only of the file is found
tp = Open( :PNG_URL[i], "png" );
Latest_Report:PNGs[i] = New Image( tp );
) // end if
);
Latest_Report:PNGs << label( 1 );
回复:将图像从目录添加到数据表在使用以下循环的同时使用图片(即*.png)作为图表上的标签这一主题:
对于( i = 1, i <= nr, i++,
tp = 打开( :PNG_URL[i], "png" );
最新报告:PNGs[i] = 新图像(tp)
);
Latest_Report:PNGs << 标签 (1);
我了解到,每次 OPEN 命令无法找到其中一个 PNG 文件时,脚本就会停止,从那时起,任何其他显示文件夹地址的行都将被忽略,JMP 会在每个文件上提供“(空)”表格的剩余单元格。这意味着我最终没有显示有价值的信息,因为一行触发了循环失败。
覆盖它的最佳方法是什么?
再次运行循环只会添加另一列(在本例中为 :PNG_URL 2)并提供(如预期的那样)相同的结果。
回复:将图像从目录添加到数据表再次感谢您的宝贵时间。
在这个社区中进行互动是一种令人愉快的学习体验。
回复:将图像从目录添加到数据表日志是显示的快照。一种选择是另存为带有嵌入表的 .JRP。 然后,当另一个人打开它时,基础表和报告处于活动状态。
在 JMP 13 和 14 中另存为交互式 HTM保存显示并嵌入标签。
回复:将图像从目录添加到数据表gzmorgan,这太棒了,就像一个魅力。 非常感谢!!
最后一个问题,
当您在图表中选择或悬停在数据点上时,JMP.12 中的期刊是否无法显示标签?回复:将图像从目录添加到数据表完整路径是在单独的列中,还是有路径列和文件名列?
假设它是一个名为 :Path 的列。 因为它们都是png文件,所以
tp = 打开(:路径[i],“png”);
如果你有两列 :Dir 和 :Name 使用这样的东西,如果目录名称没有斜杠
tp = Open( :Dir[i] || "\" || :Name[i], "png" );
旧版本的 JMP 需要 eval()
tp = Open( eval( :Dir[i] || "\" || :Name[i] ) , "png" );
在运行脚本之前尝试一下,只运行一行将 i 替换为数字,以确保文件路径名正确。
回复:将图像从目录添加到数据表这正是我所需要的,而且解决方案非常优雅;我非常感谢您的时间和您的帮助。
现在挑战...
我在 46 个单独的文件夹中有我的 PNG 文件,并且这些 PNG 文件共享相同的名称;例如我有“图30.png " 重复 20-30 次,但每个文件都保存在不同的文件夹中,因为它是不同控制限制图的图像。我已经将每个路径\文件名作为数据表中的离散列。
寻找每个人的最佳方式是什么图XX.png基于连续列中已经可用的特定路径\文件名?
回复:将图像从目录添加到数据表RSantana,Gail 的视频演示了如何从 URL 获取图片,而不是嵌入的图片。
尝试使用 Names 默认为 Here(1) 的脚本。 它是在 JMP 12 中创建的。
请注意,如果您的所有图片都是同一类型,那么您可以简化第 11 行和第 12 行。 假设您所有的图片都是 png,那么您不需要第 11 行:_typ = word() 和第 12 行,您可以删除 Eval( EvalExpr() ) 函数。 我在这个示例中需要它,因为示例图像具有不同的类型,并且在 JMP 12 中,open 不会评估变量 _ext;它要求表达式被替换然后评估。
这将是简化的第 12 行tp = Open("$Sample_images/"||_fid[i], "png" );
将其复制并粘贴到 JMP 脚本窗口中,运行它然后将鼠标悬停在这些点上。 最后一条评论是将每张图片的“代码”嵌入到您的表格列中。
Names Default to Here(1);
_fid = Files in Directory("$sample_images");
nr = nitems(_fid);
//Create a table
dt = New Table("demo",add rows(nr),
New Column("X", <<SET values=""></SET>