그래프 빌더를 슬라이더와 함께 사용하여 플롯의 모양을 변경합니다.아래 예에서는 지도와 슬라이더 상자가 있는 창을 만들어 색상의 배율을 대화식으로 변경합니다. 나는 스크립트를 사용하여 다른 창을 만들 것입니다(물론 다른 변수를 사용하더라도, 그러나 예제에서는 이 항목이 필요하지 않습니다).네임스페이스를 사용하여 변수를 할당하려고 시도했음에도 불구하고 마지막으로 생성된 창에 대해서만 작동합니다. 다른 방법을 시도했지만 모두 실패했습니다. 아무도 도울 수 있습니까?
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에 고유한 값이 있어야 합니다. 데이터 필터 컨텍스트 상자() , 로컬 데이터 필터.
창 범위 지정을 사용하는 첨부된 스크립트가 현재 요구 사항을 충족하기를 바랍니다.