페이지/행 정렬 구성을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법안녕하세요 여러분,
그래프 빌더에서 패널 크기를 조절하는 코드를 알아내는 데 도움을 줄 사람이 있기를 바랍니다.
이는 대규모 클래스 데이터 세트에서 가져온 것입니다.

JSL을 사용하여 크기를 훨씬 더 크게 설정하려면(자동 맞춤 창이 꺼져 있음) 다음과 같이 하세요.

어떻게 하면 그것을 이룰 수 있을까?
이 기능이 필요한 이유는 현재 "페이지" 열에 필터를 사용하면 레벨이 많을수록 그래프가 점점 더 작아지기 때문입니다. 레벨이 너무 많으면 너무 작아져서 패널 크기를 조정할 핸들도 보이지 않을 수 있습니다. 그래서 레벨을 몇 개 선택하고 크기를 조정하고, 레벨을 더 선택하고 크기를 조정해야 합니다. 매우 성가시고 이 새로운 그래프 빌더 기능의 멋진 기능 중 일부를 제거합니다. 반면에 필터에서 레벨을 제거하는 것과 동시에 레벨 크기가 조정된 레벨이 너무 많으면 차트가 점점 더 커집니다.
그래서 JSL을 통해 쉽고 빠르게 크기를 변경할 수 있는 입력 상자를 만들고 싶습니다.
제 말이 이해가 되기를 바라며, 어떤 아이디어라도 공유해 주시면 감사하겠습니다!
스티브
자동화 및 스크립팅데이터 탐색 및 시각화Re: 페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법귀하의 코드를 기반으로 내가 원하는 대로 패널 크기를 대화형으로 조정할 수 있는 떠 있는 창을 제공하는 방법을 추가하고 싶었습니다.
//rev 5-5-24
Names Default To Here(1);
dt=current data table();
obj=current report()["Graph Builder"]<< get scriptable object;
obj1 = obj << Get Window Title;
s = Window(obj1)<< Get Window Size();
nw = New Window("Resize Graph Builder Page Panels",Show Menu( 0 ),Show Toolbars( 0 ),
V List Box(
h list box(
vlist box(
text box("frame Size Y"),
neb1=Number Edit Box( 250 );
),
vlistbox(
textbox("frame Size X"),
neb2=Number Edit Box( 350 );
)
),
Button Box("Update Frames",
Report(obj)<< Fit to Window("Off");
nebval1=neb1 << Get;
nebval2=neb2 << Get;
(Report(obj) << XPath("//FrameBox")) << Frame Size(nebval2, nebval1);
window(obj1) << Set Window Size( s );
),
)
);
nw << Size Window( 400, 200 );
window(obj) << On Close(window("Resize Graph Builder Page Panels")<<CLOSE window=""></CLOSE>Re: 페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법잘 됐네요, 고맙습니다!!
Re: 페이지/행 구성 사용 시 그래프 빌더 패널 크기를 조정하는 방법어떻게든 트리거되어야 하며, 아마도 어떤 컨트롤이나 핸들러에 의해 트리거될 것입니다. (이 예에서 필터 핸들러가 적용되기 전에 f(0) 과 같은 함수를 호출할 수 있습니다.)
더 보기...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
change_frame_size = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
change_frame_size(0);
rs = ldf << Make Filter Change Handler(change_frame_size);
아래는 버튼을 눌러서 발생하는 가장 간단한 사례입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
Button Box("Update Frames",
(Report(window:gb) << XPath("//FrameBox")) << Frame Size(300, 300);
),
window:gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92))),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
)
)
)
);
Re: 페이지/행 구성 사용 시 그래프 빌더 패널 크기를 조정하는 방법고맙습니다, Jarmo! 정말 비슷하지만 새로운 크기로 이 코드 섹션을 실행하면 다음과 같습니다.
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);그 그래프 빌더는 필터 옵션을 변경할 때까지 차트 크기를 업데이트하지 않습니다. 필터를 변경하지 않고도 차트 크기를 강제로 업데이트할 수 있는 방법이 있습니까?
선택이 완료된 후 선택한 레벨의 수에 따라 다른 프레임 크기를 입력할 수 있는 떠 있는 창을 만드는 것이 계획입니다.
추가 의견을 알려주시면 감사하겠습니다!
Re: 페이지/행 구성 사용 시 그래프 빌더 패널 크기를 조정하는 방법JSL로 이것을 제어하는 것 외에 다른 옵션이 있는지 확실하지 않지만 프레임 크기를 변경할 수 있습니다(그렇지 않다면 데이터 필터에 대한 "잠금 창 크기"와 같은 위시리스트 항목을 만드는 것이 가치가 있을 수 있습니다. 이미 "잠금 스케일"이 있습니다.)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(300, 300);
);
rs = ldf << Make Filter Change Handler(f);
그래프 빌더/창에 일종의 "크기 강제"를 추가하여 창 크기가 계속 조절되지 않도록 할 수도 있습니다.