我将结合使用图形生成器和滑块来更改绘图的外观。在下面的示例中,我创建了一个带有地图和滑块框的窗口,以交互方式更改颜色比例。 我将使用脚本创建不同的窗口(当然,即使使用不同的变量,但在示例中不需要这些东西)。尽管我尝试使用命名空间分配变量,但它仅适用于最后创建的窗口。 我尝试了不同的方法但都没有成功。 有人可以帮忙吗?
Names Default To Here(1);
dtable= Open("$SAMPLE_DATA/SAT.jmp");
name="Map";
For(k=1, k<=10, k++,
If(Namespace Exists(Eval("ns" || name || Char(k))),
//If(k = 10,
// hanlde the max number of allowed namespaces
//);
,
name= name || char(k);
nsRef = New Namespace(Eval("ns" || name ));
Break();
)
);
nsRef << Insert("column", "% Taking (2004)");
nsRef << Insert("min", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("max", col max(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmin", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmax", col max(column(dtable, "% Taking (2004)")));
datacolumn=column(dtable, nsRef:column );
nsRef << Insert("slider1",
slider box(nsRef:min,nsRef:max,nsRef:slmax,
title= Current Window() << Get Window Title;
ns = NameSpace(Eval("ns" || title));
slmin=ns:slmin;
slmax=ns:slmax;
scale=Matrix( {slmin,slmax} );
scale=scale`;
ns:gb <<SENDTOREPORT></SENDTOREPORT>
你正在朝着正确的方向前进。 您确实需要一个本地空间,根据任务,我建议您选择以下几个选项:
- 由于您只是更改图例,并且每个 GB 将位于一个单独的窗口中,因此执行此操作的一个简单方法是使用窗口范围、窗口命名空间窗口:slider1 = SliderBox() 。 请参阅随附的脚本。
- 如果仅更改图例并且窗口中有多个 GB,请使用<<设置函数( Function())用于使用对相应 GB 的相对引用的滑块框。 如果 GB 和 HListBox(TextBox, Sliderbox) 嵌套在 VListBox 中,则函数将类似于 (this<
- 假设您有多个 Y 不同但 X 相同的 GB。 如果您想限制 X 或排除 Y1 的行但不排除 Y2,则每个 GB 应该有自己的数据过滤上下文框() ,本地数据过滤器。
希望使用窗口范围的附加脚本能够满足您当前的需求。