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