페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법안녕 모두들,
누군가가 그래프 빌더에서 패널 크기를 조정하는 코드를 알아내는 데 도움을 줄 수 있기를 바랐습니다.
이는 빅 클래스 데이터 세트에서 가져온 것입니다.

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

내가 어떻게 그걸 달성할 수 있을까?
이 기능이 필요한 이유는 현재 "페이지" 열에 필터를 사용하는 경우 레벨이 많아질수록 그래프가 점점 작아지기 때문입니다. 레벨이 너무 많으면 패널 크기를 조정하는 핸들조차 볼 수 없을 정도로 작아질 수 있습니다. 그래서 일부 레벨을 선택하고, 크기를 조정하고, 더 많은 레벨을 선택하고, 크기를 조정해야 합니다. 매우 짜증나고 이 새로운 그래프 빌더 기능의 놀라운 기능 중 일부를 제거합니다. 반대로, 필터에서 수준을 제거하면 적절한 크기의 수준이 엄청나게 많아지면 차트가 점점 더 커집니다.
그래서 JSL을 통해 쉽고 빠르게 크기를 변경할 수 있는 입력 상자를 갖고 싶습니다.
이것이 의미가 있기를 바라며 어떤 아이디어라도 감사드립니다!
스티브
자동화 및 스크립팅데이터 탐색 및 시각화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: 페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법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);
그래프 빌더/창에 일종의 "크기 강제"를 추가하여 창 크기가 계속 조정되지 않도록 할 수 있습니다.
Re: 페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법고마워요 자르모! 이것은 매우 유사하지만 새로운 크기로 코드의 이 섹션을 실행하면 다음과 같습니다.
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);해당 그래프 빌더는 필터 옵션을 변경할 때까지 차트 크기를 업데이트하지 않습니다. 필터를 변경할 필요 없이 차트의 크기를 강제로 업데이트하는 방법이 있습니까?
계획은 선택이 완료된 후 선택한 레벨 수에 따라 다양한 프레임 크기를 입력할 수 있는 부동 창을 갖는 것입니다.
추가 의견을 보내주셔서 감사합니다!
Re: 페이지/행 구성 정렬을 사용할 때 그래프 빌더 패널 크기를 조정하는 방법정말 매력적이네요. 감사합니다!!
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>