jsl 中的交互式 html 和本地数据过滤器你好,
我想将相同变量的图保存为交互式 html,但针对不同值进行过滤。
这是一个例子:
new_window = New Window( "NW", hlb = H List Box() );
for (age_index=1,age_index<=N items(age_list),age_index++,
graph = Graph Builder(
invisible,
Size( 1357, 920 ),
Variables(
X( :index ),
Y( :Height ),
),
Local Data Filter(
Add Filter(
columns( :Age ),
Where( :Age == age_list[age_index] ),)
)
);
dt << save script to data table("my_plot");
hlb << append(V List Box(dt << run script("my_plot"));
);
new_window<<SAVE interactive="" html=""></SAVE>在保存的 html 文件中,对于第一个索引,图显示得很好,对于其余的age_indexes,显示了图的轴,但没有数据。 所以这些地块都是空的。 运行脚本时打开new_window,数据完整显示。 即使当我尝试手动将窗口保存为交互式 HTML 时,也仅显示第一个age_index 的数据。
有没有一种方法可以将这些类型的绘图以交互格式正确保存在一个 html 文件中?
感谢您的帮助
回复:jsl中的交互式html和本地数据过滤器对于交互式 HTML,在这种情况下,只需取消选中“包含”复选框,允许数据过滤器简单地隐藏/显示整个数据集的部分内容,而不是仅导出包含的部分(包含和排除行是 JMP 的一项功能),您可能会获得更好的结果居住)。导出后,您仅隐藏/显示最初包含的行的子集,而不是整个数据集。然而,我们的目的是使 HTML 输出的初始显示与 JMP 匹配,因此如果不是这样,那就是一个错误。交互后,由于“包含”复选框,两者可能会有所不同。
一般来说,如果我正确理解你的最后一个问题,是的,你可以将多个图放在仪表板的一个页面中。另一位用户询问有关列切换器(JMP Live 也支持)的问题,我的一位同事提出了交互式 HTML 的几种解决方法,例如编写一个脚本来重新创建每列的绘图,并将它们放入仪表板中,这听起来就像您所看到的那样想做。这可能会给你一些想法: https://community.jmp.com/t5/Discussions/How-to-add-HTML-links-to-JMP-interactive-HTML-files/mp/232170#M46067
回复:jsl中的交互式html和本地数据过滤器非常感谢您的建议和解释。 现在这是有道理的。
我正在使用 JMP 14.2.0。
我实际上需要一页中的图,因为它们应该相互比较。
是否可以将每个图表保存为交互式 html,并将保存的图表添加到仪表板?
我的列表并不长,大约有 10 个元素。
可能吗?
回复:jsl中的交互式html和本地数据过滤器@Leily ,
您没有提及您当前使用的 JMP 版本。在最新版本 JMP 15 中,带有本地数据过滤器的图形生成器仅部分实现。例如,使用 JMP 示例数据表学生,而 JMP 中的活动窗口中,当我选择年龄组时,图形点元素是动态的。 但是,如果保存为交互式 HTML,则其他元素(例如平滑元素)就不会。下面是使用年龄作为 X 组的图形生成器图。 在JMP中,仅显示我选择的项目及其平滑器;对于交互式 HTML,非动态元素是固定的。 图片下方有更多讨论。
In JMPIn JMP在 JMP 中
Interactive HTMLInteractive HTML交互式 HTML
如果您只有点元素,请尝试此脚本。 关键是选择列表中的所有项目,然后将图表保存为交互式 HTML。 然后您可以在网络上选择点。 请注意,图例和注释(where 语句)不是动态的。请参阅脚本下方的 HTML 输出。 鉴于此,有多种方法可以创建 Web 视图来选择图片。
请提供更多详细信息,例如您使用的 JMP 版本、您的选择列表是否很长、您希望所有视图都在水平列表中还是一次只有一个视图等。
Names Default to Here(1);
dt = open("$Sample_Data/Students.jmp");
graph = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :age ), Color( :age ) ),
Elements( Points( X, Y, Legend( 152 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == {11, 12, 13, 14, 15, 16} ),
Display( :age, Size( 178, 102 ), Height( 102 ) )
)
)
);
graph << save as interactive html("c:/temp/point_selection.htm");
