将图像从目录添加到数据表朋友们,我正在运行 JMP12,我想将一系列 PNG 图像添加到我的数据表中。我想这样做,以便我可以将它们用作统计均值匹配标志散点图上的标签,并通过将鼠标悬停在每个标志的值上来调用 PNG(控制极限图的图像)。我发现了 Gail Massari 制作的一段 SAS 视频,该视频从维基百科 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");
Latest_Report:PNGs[i] = 新图像( tp )
);
Latest_Report:PNGs << 标签 (1);
我了解到,每当 OPEN 命令无法找到其中一个 PNG 文件时,脚本就会停止,从那时起,显示文件夹地址的任何其他行都将被忽略,JMP 在每个文件上提供的结果是“(空)”表的剩余单元格。这意味着我最终无法显示有价值的信息,因为一行触发了循环中的失败。
覆盖这个的最好方法是什么?
再次运行循环只会添加另一列(在本例中为:PNG_URL 2)并提供(如预期的)相同的结果。
回复:将图像从目录添加到数据表再次感谢您抽出时间。
在这个社区中互动是一次愉快的学习经历。
回复:将图像从目录添加到数据表日志是您显示的快照。一种选择是另存为带有嵌入表格的 .JRP。 然后,当另一个人打开它时,基础表和报告将处于活动状态。
在 JMP 13 和 14 中另存为交互式 HTM保存显示并嵌入标签。
回复:将图像从目录添加到数据表gzmorgan,这太棒了,而且很有魅力。 非常感谢!!
最后一个问题,
当您选择图表中的数据点或将鼠标悬停在图表中的数据点上时,JMP.12 中的日志是否无法显示标签?回复:将图像从目录添加到数据表完整路径是否在单独的列中,或者是否有路径列和文件名列?
假设它是一个名为:Path 的列。 由于它们都是png文件那么
tp = Open( :Path[i], "png" );
如果您有两列 :Dir 和 :Name 使用类似这样的内容,并且目录名称没有尾部斜杠
tp = Open( :Dir[i] || "\" || :Name[i], "png" );
旧版本的 JMP 需要 eval()
tp = Open( eval( :Dir[i] || "\" || :Name[i] ) , "png" );
在运行脚本之前先尝试一下,只需运行一行,将 i 替换为数字,以确保文件路径名正确。
回复:将图像从目录添加到数据表这正是我所需要的,而且解决方案非常优雅;我非常感谢您的时间和帮助。
现在挑战...
我的 PNG 文件位于 46 个单独的文件夹中,并且这些 PNG 文件共享相同的名称;例如我有“ graph30.png " 重复 20-30 次,但每个文件都保存在不同的文件夹中,因为它是不同控制限图的图像。我已经将每个路径\文件名作为数据表中的离散列。
寻找每个人的最佳方式是什么图XX.png基于连续列中已有的特定路径\文件名?
回复:将图像从目录添加到数据表RSantana,Gail 的视频演示了如何从 URL 获取图片,而不是嵌入图片。
尝试使用默认名称为 Here(1) 的 startw 脚本。 它是在 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>