悬停时显示图像(但不下载图像到表格)你好,我有几个 GB 的文件,其中有一列“链接”到该行的一个唯一图像。
今天,我将鼠标悬停在某个点上并看到我的链接,可以单击它在浏览器中打开图像。
我尝试创建一个新的“图像”列,并给它贴上标签,然后将公式设置为
New Image(:link)
但这会下载每个图像并创建一个非常大的文件。
我的目标是将鼠标悬停在某个点上或单击图形生成器中的某个点,并让它显示图像(如带标签的项目)而不是链接。
这可能吗?我正在使用 JMP18 pro。
自动化和脚本数据探索与可视化回复:悬停时显示图像(但不将图像下载到表格)对于表格,您可以执行事件处理程序列属性

在图表中,悬停标签是一个不错的选择,但是它们可以触发很多次,当用户将鼠标悬停在某个点上时将图像下载到表格中可能是个好主意,以防止每次都重新下载。
回复:悬停时显示图像(但不将图像下载到表格)你好@萨姆金 ,悬停标签编辑器中的模板正好涵盖了这种应用案例:


对于你的情况它是:
Picture Box( Open( local:_link, jpg ) )
不要忘记下划线!
对于列链接,要使其可通过悬停标签框架的本地命名空间访问,只需激活“标签”选项

回复:悬停时显示图像(但不将图像下载到表格)对于悬停标签,需要一段时间才能显示 - 但图片脚本的代码会立即处理。
因此,您可以通过打开一个带有图片框的新窗口并用加载的图像替换内容来加快速度。
new window("viewer", myNS:pb = Picture Box )并在悬停标签的图片脚本中:
myNS:pb << set image( ...
回复:悬停时显示图像(但不将图像下载到表格)这正是我所寻找的,而且非常简单!我有 2 个后续问题,按重要性列出。
1. 图形生成器中的大多数图表在顶部 X 轴(组 X)上都有一个类别,因此每个部分都是一个不同的框架框,并且根据数据集,框架框的数量非常动态。当我使用此方法进行悬停时,脚本会附加到单个框架框。有没有办法让它动态地附加到所有框架框?
这是我的脚本的一个示例,其中有 4 个框架框。如果我删除第 4 个然后运行脚本,那么我不会在最后一个框中悬停。:
Graph Builder(
Size( 1284, 822 ),
Show Control Panel( 0 ),
Variables( X( :DFC ), Y( :Param1 ), Group X( :Param2 ) ),
Elements( Smoother( X, Y, Legend( 6 ) ), Points( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox,
{Set Graphlet( Picture( Picture Box( Open( local:_link, jpg ) ) ) )}
),
Dispatch( {}, "Graph Builder", FrameBox( 2 ),
{Set Graphlet( Picture( Picture Box( Open( local:_link, jpg ) ) ) )}
),
Dispatch( {}, "Graph Builder", FrameBox( 3 ),
{Set Graphlet( Picture( Picture Box( Open( local:_link, jpg ) ) ) )}
),
Dispatch( {}, "Graph Builder", FrameBox( 4 ),
{Set Graphlet( Picture( Picture Box( Open( local:_link, jpg ) ) ) )}
),
)
);2. 有没有办法指定预览图像大小?单击预览图像后,它会在新的 JMP 窗口中打开图像,但我的图像很大,所以我必须在 JMP 窗口中滚动查看。可以设置图像大小吗?
回复:悬停时显示图像(但不将图像下载到表格)嗨,我已经在 :link 列上设置了它,但我使用它只是为了创建显示为标签的超链接。所以我可以点击它来进入浏览器查看图像。但它不会显示图像的预览,只显示链接。

回复:悬停时显示图像(但不将图像下载到表格)这将为报告中所有框架框设置图形元素。
gb = Graph Builder(
Size( 1284, 822 ),
Show Control Panel( 0 ),
Variables( X( :DFC ), Y( :Param1 ), Group X( :Param2 ) ),
Elements( Smoother( X, Y, Legend( 6 ) ), Points( X, Y, Legend( 7 ) ) )
);
(Report( gb ) << X Path( "//FrameBox" )) << Set Graphlet( Picture( Picture Box( Open( local:_link, jpg ) ) ) );
回复:悬停时显示图像(但不将图像下载到表格)这是最方便的方法:)
当您想要将悬停标签设置广播到其他子图时,您可以复制子图的自定义设置:

...并且在将它们粘贴之前(例如粘贴到同一个情节),您只需按 CTRL 即可将动作广播到所有子情节。
如何将显示选项应用于多个结果(图形)
感谢@jthi ,他解释了复制粘贴的技巧。但我找不到该帖子。
对于点击的问题:
除了图片部分之外,还有一个点击部分 - 您可以在其中触发任何您想要的操作。
例如
myimg = New Image(...);
myimg << scale( 0.5 ));
pb << set image( myimg );
