그래프 빌더 프레임 크기 JSL안녕하세요 여러분,
이것은 쉽고 빠른 수정이 될 수 있습니다. 하지만 올바른 방법을 찾는데 어려움을 겪고 있습니다.
그래프 빌더의 모든 그래프와 일관된 범례 설정에서 일관된 프레임 크기를 유지하는 방법을 찾으려고 노력 중입니다. 데이터 테이블 끝에 숫자 값이 있는 FOR 루프를 실행합니다. 범위는 1개부터 여러 개까지 가능하며 모든 열을 Y축에 표시하려고 합니다.
주요 불일치는 Y축에 매개변수가 하나만 있을 때 발생합니다. 해당 범례는 표시되지 않지만 매개변수가 2개 이상인 경우 범례가 자동으로 표시되며 이에 대해 별도의 JSL 명령을 작성할 필요가 없습니다. 그렇기 때문에 범례 설정의 공간이 부족하여 각 그래프가 다르게 보입니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
감사합니다
Re: 그래프 빌더 프레임 크기 JSL프레임 크기가 일치하는 그래프가 있습니까?Jmp에서 이것이 가능합니까?
Jmp 지원팀(TS-00076249)에 문의하여 답변을 받았습니다.
예, 가능하다고 말하고 싶지만 필요할 수도 있습니다. 꽤 많은 스크립팅 만들고 싶은 모든 가능한 그래프에 대해 이를 수행하려면 - 특히 그래프 빌더에 대해 이야기하는 경우에는 더욱 그렇습니다.
현재 사용 중인 모니터의 디스플레이 해상도를 고려하려면 모니터의 해상도를 반환하는 Windows dll에 액세스하면 됩니다.이를 사용하여 원하는 대로 픽셀 크기 사양을 조정할 수 있습니다.그러나 각 모니터의 해상도가 다를 수 있는 다중 모니터 환경에서 작업하는 경우 그래프가 어떤 모니터에 있는지 알 수 없기 때문에 해상도를 설명하는 것이 사실상 불가능합니다.
좋아요, 그럼 어떻게요?
크기가 일치하는 그래프를 생성하는 것이 정말 그렇게 복잡합니까?
사용 사례:
우리는 Jmp 분석을 발표하기 위해 PowerPoint를 사용합니다.
페이지에서 페이지로 원활하게 전환하기 위해 동일한 프레임 크기(축 없이 페이지의 NxM 하위 플롯의 외부 상자에 대해 동일한 크기)와 축 및 X/Y의 글꼴 크기가 동일한 모든 그래프를 생성하려고 합니다. 그룹 라벨.
Re: 그래프 빌더 프레임 크기 JSL나는 또한 다음과 같은 조합이 가능하다는 희망을 가지고 시작했습니다.
Fit to Window( "Off" ),
그리고
Size(...)
문제를 해결할 수도 있습니다.
하지만 코드에서 이 사실을 깨달았을 때 @ErraticAttack 두 기능이 모두 사용되었습니다. 희망이 사라졌습니다.
이 예에서는 X 레이블이 다르면 그래프의 크기가 완전히 달라집니다.
전체 그래프(축 포함) 주위에 직사각형이 없는 한, 둘 다 동일한 크기를 가지고 있다는 것을 아무도 눈치 채지 못할 것입니다.
Y축의 크기가 다른 경우에도 동일한 문제가 발생합니다.

Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
V List Box(
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y ) )
)
,
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, "Wt", ScaleBox, {Format( "Engineering SI", 12 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Weight" )} )
)
)
)
)
Re: 그래프 빌더 프레임 크기 JSL나는 이것이 오래 전 일이라는 것을 알고 있지만 우리는 몇 달 전에 같은 문제와 싸우고 있었고 다음과 같은 결론을 내렸습니다.
Names Default to Here( 1 );
win = Get Window List();
// find graph builder windows
graphs = Filter Each({w}, win,
If(Length(w << XPath("//OutlineBox[@helpKey='Graph Builder']")) > 0, 1, 0)
);
// get the last Graph Builder
last_gb = graphs[N Items(graphs)][OutlineBox("Graph Builder")] << Get Scriptable Object;
// set size
last_gb << Fit to Window("Off");
// last_gb << Show Control Panel( 0 );
last_gb << Size(1000,800);
// copy picture
frame = (graphs[N Items(graphs)] << XPath( "//GraphBuilderBox" ))[1];
frame << Copy Picture;"창에 맞추기"는 출력 플롯을 정확히 올바른 크기로 만드는 데 핵심이었습니다.
Re: 그래프 빌더 프레임 크기 JSL여기에 업데이트가 있나요?
Jmp 및 JSL의 Tiny Traps 후보처럼 들립니다.

녹색: "크기"
파란색: 프레임 크기
보라색: 플롯 크기
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window("test",
H List Box(
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :name ),
X( :age, Position( 1 ) ),
X( :sex, Position( 1 ) ),
Y( :height ),
Group X( :sex )
),
Elements( Points( X( 1 ), X( 2 ), X( 3 ), Y) ),
SendToReport(
Dispatch( {}, {"height vs. name & 2 more"}, TextEditBox,
{Set Text( "my title\!nspans over 2 lines" )}
),
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "very long Y axis title " ), Rotate Text( "Horizontal" )}
)
)
);,
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :height ), Group X( :age ) ),
Elements( Points( X, Y ) ),
SendToReport(
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "x" ), Rotate Text( "Horizontal" )}
)
)
)));
Re: 그래프 빌더 프레임 크기 JSL그것은 내가 원하는 것과 정반대입니다. 프레임박스() 지정된 크기만 가능합니다.다음은 이를 설명하는 몇 가지 예제 코드입니다.그만큼 크기( 500, 500 ) 두 가지 모두에 공급되지만 분명히 프레임박스() 크기는 별로 (500, 500) .
사실, 그것은 심지어 GraphBuilderContainerBox() 지정된 크기로 설정된 것을 표시합니다. 먼저 레전드박스() , 나머지(제목/축/축 헤더)는 (500,500) 크기.그것은 단지 말도 안되는 일입니다!
말 그대로 설정할 수 있는 방법이 없습니다. 프레임박스() (예를 들어, 개요 상자( "", 그래프 빌더( ... ) ) 그리고 그랬다 외곽선 상자[프레임 상자( 1 )] << 프레임 크기( 500, 500 )) 인스턴스화 전/중 그래프빌더() 상자.창과 그래프가 생성된 후에만 수행할 수 있습니다.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
H List Box(
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables(
X( :Make ),
X( :Model, Position( 1 ) ),
X( :Year, Position( 1 ) ),
X( :Protection, Position( 1 ) ),
X( :"D/P"n, Position( 1 ) ),
X( :Size, Position( 1 ) ),
X( :Doors, Position( 1 ) ),
Y( :Wt ),
Color( :Model )
),
Elements(
Bar(
X( 1 ),
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
Y,
Legend( 9 )
)
)
)
,
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 11 ), Error Interval( "Standard Error" ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Grid Line Order( 1 ), Reference Line Order( 2 )}
)
)
)
)
)내가 필요한 것은 차트가 있는 영역( 프레임박스() ) 축의 크기나 텍스트의 길이나 복잡도와 상관없이 고정된 크기로 지정됩니다.

Re: 그래프 빌더 프레임 크기 JSLSize 요소는 Frame(FrameBox()) 크기를 설정합니다.

GraphBuilderContainerBox()를 설정하지 않습니다.

이것이 바로 크기가 설정될 것으로 예상한 것입니다.
Re: 그래프 빌더 프레임 크기 JSL이것은 작동하지 않습니다.FRAME SIZE는 FRAME 주위의 범례/텍스트 영역의 크기에 따라 달라집니다.
Re: 그래프 빌더 프레임 크기 JSL@vishwasanj
크기 인수와 해당 매개변수는 아래 예와 같이 창 크기를 정의하고 제한하는 데 사용할 수 있습니다.
Graph Builder(
Size( 1230, 650 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
)
Re: 그래프 빌더 프레임 크기 JSL저는 소원을 빌었습니다:
특정 크기의 그래프를 생성하는 기능
어디 보자...
Re: 그래프 빌더 프레임 크기 JSL안녕하세요 vishwasanj 님,
이 문제도 발생합니다. 비록 효율적인 방법은 아닐지라도 내 솔루션을 여러분과 공유해 보세요.
단순화를 위해 X축(가로 방향)만 설명합니다.
표준 템플릿 Framebox 크기가 500이라고 가정하면 전체 그래프 크기는 535입니다. 이는 Framebox에 속하지 않는 크기가 35라는 것을 의미합니다.
그런 다음 프레임 크기=500, 전체 크기=550을 할당한 후 일부 for 루프에 의해 생성된 그래프가 있습니다.
그런 다음 이러한 그래프를 고정된 전체 크기 png로 내보낼 것이라는 점을 고려하면 프레임 크기 대 전체 크기 비율이 동일하면 프레임 크기도 동일할 수 있습니다.
즉, 이전 그래프에 'dx'를 추가하여 비율을 동일하게 만들 수 있습니다.
500:535=(500+dx):(550+dx+dx2),
여기서 dx2는 dx 적용 후 축 길이 증가입니다.
그러나 내 경험상 dx2는 기본적으로 무시할 수 있습니다.
따라서 프레임 크기=500+dx로 너비 550개의 그림 크기를 조정할 수 있습니다.
500:535=(500+dx):(550+dx).
비슷한 크기의 png로 내보낸 후에는 동일한 프레임 크기의 사진을 가질 수 있습니다.Re: 그래프 빌더 프레임 크기 JSL제 포스팅을 보시고 도움이 되셨으면 좋겠습니다.Re: 그래프 빌더 프레임 크기 JSL소원에 대한 새로운 링크(이전 링크는 끊어진 것 같습니다):
특정 플롯 크기로 플롯을 생성하는 기능
그 사이에 소원은 15개의 Kudos를 모았습니다.:)
Re: 그래프 빌더 프레임 크기 JSL현재 저희는 26개의 칭찬을 받았습니다.