我会结合使用图形生成器和滑块来更改绘图的外观。在下面的示例中,我创建了一个带有地图和滑块框的窗口,以交互方式更改颜色的比例。 我会使用脚本来创建不同的窗口(当然,即使使用不同的变量,但在示例中不需要这些东西)。尽管我尝试使用命名空间分配变量,但它仅适用于最后创建的窗口。 我尝试了不同的方法,但都没有成功。 任何人都可以帮忙吗?
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,请使用<<设置函数(函数())对于使用对相应 GB 的相对引用的滑块框。 如果 GB 和 HListBox(TextBox, Sliderbox) 嵌套在 VListBox 中,则函数将类似于 (this<< parent)<
- 假设您有多个具有不同 Y 但相同 X 的 GB。 如果您想限制 X 或排除 Y1 而不是 Y2 的行,那么每个 GB 应该有自己的数据过滤器上下文框() ,本地数据过滤器。
希望使用窗口范围的附加脚本能够满足您当前的需求。