안녕,
JSL을 사용하여 보고서(.ppt)를 생성하고 싶습니다.
내보내고 싶은 그래프가 두 개 있습니다. 하나는 5개 그룹 그래프이고, 다른 하나는 3개 그룹 그래프입니다.
각 그룹의 크기를 250*250으로 하고 싶습니다. 따라서 5개 그룹으로 구성된 그래프는 1250*250이 되고, 3개 그룹으로 구성된 그래프는 750*250이 되어야 합니다.
저는 그래프를 내보낼 때 '프레젠테이션 저장' 기능을 사용합니다.
5개 그룹 크기는 제가 수동으로 플롯을 내보낼 때와 동일하지만, 3개 그룹 크기는 그렇지 않습니다. 3개 그룹 크기는 75%로 축소되어 있습니다.
동일한 축척과 해상도로 여러 개의 그래프를 내보내려면 어떻게 해야 할까요?
NonLeakage_graph = dt << Graph Builder(
Size( 1250, 250 ),
Variables( X( :Lot ), Y( :drift% ), Group X( :Label ), Color( :Lot ) ),
Elements( Box Plot( X, Y, Legend( 1 ) ) ),
By( :Rel_Test ),
SendToReport(
Dispatch( {}, "drift%", ScaleBox,
{Format( "Percent", 12, 0 ), Min( -0.25 ), Max( 0.25 ), Inc( 0.05 ),
Minor Ticks( 0 ), Add Ref Line( 0.2, "Solid", "Red", "20%", 1 ),
Add Ref Line( -0.2, "Solid", "Red", "-20%", 1 )}
)
)
);
NonLeakage = NonLeakage_graph << Report;
save_path = "D:\Reliability Qual\reliability report template\jmp_example.pptx";
For( i = 1, i <= N Items( NonLeakage ), i++,
If( File Exists( save_path ),
NonLeakage[i] << Save Presentation( save_path, Append );
,
NonLeakage[i] << Save Presentation( save_path );
)
);
NonLeakage << Close Window;
dt << Clear Row States;
dt << Select Where( (Contains( {"0cyc", "0hrs"}, :ReadPoint )) | (!Contains( {"IGSS", "IGSSR", "IDSS"}, :Label )) );
dt << Hide( 1 ) << Exclude( 1 );
dt << Clear Selection;
dt << Select Where( (!Contains( {"0cyc", "0hrs"}, :ReadPoint )) & (Contains( {"IGSS", "IGSSR", "IDSS"}, :Label )) );
Summarize( dt, l_groups = By( :Rel_Test ) );
Leakage_graph=dt << Graph Builder(
SendToByGroup( {:Rel_Test == "H3TRB"} ),
Size( 750, 250 ),
Variables( X( :Lot ), Y( :drift% ), Group X( :Label ), Color( :Lot ) ),
Elements( Box Plot( X, Y, Legend( 1 ) ) ),
By( :Rel_Test ),
SendToReport(
Dispatch( {}, "drift%", ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 20 ), Inc( 5 ),
Minor Ticks( 0 ), Add Ref Line( 10, "Solid", "Red", "10", 1 )}
)
)
);
Leakage = Leakage_graph << Report;
Leakage << Save Presentation( "D:\Reliability Qual\reliability report template\jmp_example.pptx",append );
안녕하세요,
이 방법은 효과가 없습니다. JMP에서는 모든 것이 정상적으로 보이지만, PowerPoint로 내보내면 그래프의 축척이 달라집니다.
안녕하세요 @LT 님 ,
당신 말이 맞는 것 같습니다. 하지만 문제는 제가 생각했던 곳이 아니네요.
첫 번째 링크에 있는 힌트를 활용하면 제가 처음 답글을 썼을 때 생각했던 것보다 훨씬 더 많은 것을 이룰 수 있습니다.
이 코드는 요청된 비율로 그래프를 생성합니다.
250x250 크기의 프레임 3개를 750x250 크기로 확대
그리고 250x250에서 1250x250으로 크기가 조정된 프레임 5개.
그래프를 클립보드에 복사한 다음 그래픽 프로그램에 붙여넣으면 모든 하위 그래프의 크기가 동일한 것을 확인할 수 있습니다.
해당 코드는 실제 문제점을 지적합니다.
PNG 이미지든 JPG 이미지든 크기에 상관없이, 숨겨진 규칙에 따라 프레젠테이션에서 크기가 조정될 수 있습니다.
<<프레젠테이션 저장 기능으로는 사용자가 이러한 규칙을 조정할 수 없을까 봐 걱정됩니다.
해결 방법: 스크립팅(예: JMP의 Python 인터페이스)을 사용하여 프레젠테이션에 삽입할 그래프의 크기와 위치를 지정할 수 있습니다.
또는 support@jmp.com 으로 이메일을 보내 추가적인 제안을 요청할 수도 있습니다.
<<프레젠테이션 저장...>> 에 숨겨진 설정이 있을지도 모릅니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
fn = "$TEMP/jmp_example.pptx"
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
rbiv << Save Presentation(fn );
For each( {selection}, {{13, 14, 15}, {13, 14, 15, 16, 17}},
Eval(
Eval Expr(
gb = Graph Builder(
Fit to Window( "Off" ),
Variables(
X( :height ),
Y( :weight ),
Group X( :age ),
Overlay( :age )
),
Elements(
Points( X, Y ),
Smoother( X, Y )
),
Local Data Filter(
Conditional,
Add Filter(
columns( :age ),
Where( :age == Expr( selection ) )
)
)
)
)
);
fb = Report( gb )[FrameBox( 1 )];
fb << Frame size( 250, 250 );
// show(fb << get size);
gb << save presentation( fn, Append );
);
Web( fn );