回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本嗨,我正在寻找这方面的进一步帮助吗?
我试图只在我的 xlist 上显示一定数量的列,而不是所有列,这些列以任何随机顺序放置
xlist = {“深红色”,“氮氧化物”,“径向”};
使用上面的脚本,它只绘制前 3 列,在本例中是“crim”、“zn”和“indus”,而不是我上面提到的那些。
有什么解决方法吗?
谢谢。
回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本更新:好的,所以我需要在我的脚本指南中多读一些关于 Append、Prepend、Sib Append 和 Sib Prepend 的内容。 在阅读了这篇文章之后,我需要确定我需要将更新的图形添加到哪个容器框。 因此,当涉及到在窗口中放置其他容器框时,您可能需要使用 Sib Prepend() 命令。 现在我看到它是有道理的。
如果有人感兴趣,附加的 JSL 可以满足我的所有要求。
谢谢!,
DS
回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本你好@ian_jmp ,
我希望当我在新窗口中有更多元素时,您可以帮助我正确地运行此脚本。 我已经能够将我的独立工作的概念脚本转移到一个更大的脚本中,该脚本对数据进行分区并显示结果。 我将我的 JSL 代码作为文件附加,这样可能更容易。 它会打开 Boston Housing,您可以选择数据表,然后选择 X 因子和 Y 响应,并设置验证部分和要尝试的最大拆分数。
该代码用于生成我想要的输出(如下):

但是,当您循环参数时,它会将窗口的布局重新排列为:

我想保持与第一个屏幕截图相同的布局,但是 Prepend 和 Append 选项没有保持正确的布局。 任何帮助深表感谢。
谢谢!,
DS
回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本你好@ian_jmp ,
这正是诀窍,谢谢! 我将在下面发布工作代码并将其标记为解决方案,因为这段代码完全符合我开始处理这部分时的预期。
谢谢!,
DS
使用 Prepend 而不是 Append 更新了代码。
Names Default To Here( 1 );
dt = Open("$sample_data/Boston housing.jmp");
//dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本尝试“前置”而不是“追加”。
回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本大家好,
所以,我能够找到以前的讨论线程这里在哪里@多发性硬化症帮助另一个用户做类似的事情。 我能够解决这个想法并对其进行修改以使其或多或少地按照我的意图工作。下面是允许该功能的代码,除了一个小的“缺陷”。
该代码允许用户选择要绘制图表的 X、Y 项目,并在更改组合框或按下 Prev/Next 按钮时更新图表。 因此,在这方面,代码按预期工作。
在进行更改以绘制不同内容后,图形构建器内容框与包含组合框/按钮框的选择阵容框交换位置。 我想保留包含用于修改窗口底部图形的选项的阵容框,但不确定该怎么做。
非常感谢任何关于如何解决这个问题的建议! (最后的代码)。
谢谢!,
DS
启动窗口(带有以下选项):

更改 X 或 Y 组合框或上一个/下一个按钮后更新的窗口:

这是代码:
Names Default To Here( 1 );
//dt = open("$sample_data\Boston Housing.jmp");//In case the file isn't already open.<BR />
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本你好@DonMcCormack ,
是的,这肯定可以解决问题,但我希望在用户单击 Next/Prev 按钮或从组合框中选择一组不同的变量时自动更新图形。 本质上,我正在尝试重新创建 PCA 平台的功能,但将其推广以合并到其他脚本中。
DS
回复:JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本为什么不使用列切换器?
JSL:如何使用组合框和下一个/上一个按钮编写图形更新脚本大家好,
我正在处理一组更大的 JSL 代码,并且有兴趣向它添加一些功能,以便用户可以循环浏览不同的视图——就像在 PCA 平台中循环浏览不同组件时可以做的一样,请参见屏幕下面拍摄。

我知道我需要几个组合框和数据表中的相关列,但我不确定如何像 PCA 平台那样让图表自动更新,或者如何正确调用下一步按钮框。 我还想添加一个 Previous 按钮框,以便用户可以更轻松地返回视图。
如果有人对如何实现这个有一些建议或想法,我将不胜感激。 我一直没有成功搜索此功能,也没有在我拥有的脚本索引或脚本指南中找到很多相关信息。
谢谢!,
DS
更新:我越来越接近并且有一个循环遍历组合框中列表的代码,所以这非常简单(见下文)。 我仍然遇到问题的是让图表自动更新。 目的是当用户单击 Next 或 Prev 时,图中的 y 变量会自动更改。 顺便说一句,我正在使用 Boston Housing.jmp 文件对其进行测试。
Names Default To Here( 1 );
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
nw = New Window( "interactive Graph builder", V List Box( vlb1 = V List Box(), vlb2 = V List Box() ) );
xcol = 1;
ycol = 2;
lbcontent = V List Box(
Lineup Box( N Col( 5 ),
Text Box( "Select Params", <<SET font="" size=""></SET>
自动化和脚本