我會結合使用圖形生成器和滑塊來更改繪圖的外觀。在下面的示例中,我創建了一個帶有地圖和滑塊框的窗口,以交互方式更改顏色的比例。 我會使用腳本來創建不同的窗口(當然,即使使用不同的變量,但在示例中不需要這些東西)。儘管我嘗試使用命名空間分配變量,但它僅適用於最後創建的窗口。 我嘗試了不同的方法,但都沒有成功。 任何人都可以幫忙嗎?
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 應該有自己的數據過濾器上下文框() ,本地數據過濾器。
希望使用窗口範圍的附加腳本能夠滿足您當前的需求。