Hallo,
Ich möchte mit JSL einen Bericht (.ppt) generieren.
Ich möchte 2 Diagramme exportieren: eines mit 5 Gruppen und eines mit 3 Gruppen.
Ich möchte, dass jede Gruppe 250*250 Pixel groß ist, also sollte ein Diagramm mit 5 Gruppen 1250*250 Pixel groß sein und ein Diagramm mit 3 Gruppen 750*250 Pixel groß sein.
Ich verwende „Präsentation speichern“, um Diagramme zu exportieren.
Die Gruppengröße von 5 entspricht der manuell exportierten Diagrammgröße, die von 3 Gruppen jedoch nicht. Die Gruppengröße von 3 Gruppen ist reduziert und beträgt nur 75 %.
Wie kann ich mehrere Diagramme mit demselben Maßstab und derselben Auflösung exportieren?
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 );
Hallo,
Das funktioniert nicht. In JMP sieht alles gut aus, aber nach dem Export nach PPT sind die Skalierungen der Diagramme unterschiedlich.
Hallo @LT ,
Sie scheinen Recht zu haben. Das Problem liegt jedoch nicht dort, wo ich es vermutet habe.
Mit den Hinweisen im ersten Link kann man viel erreichen – sogar mehr, als ich für möglich gehalten hätte, als ich meine erste Antwort schrieb.
Dieser Code erzeugt Diagramme mit den gewünschten Proportionen:
Drei Frames mit 250x250 -> 750x250
und fünf Frames mit 250x250 -> 1250x250.
Wenn Sie die Diagramme in die Zwischenablage kopieren und in ein Grafikprogramm einfügen, können Sie sehen, dass alle Teildiagramme die gleiche Größe haben.
Der Code weist auch auf das eigentliche Problem hin:
Ungeachtet der Größe des PNG- oder JPG-Bildes kann es in der Präsentation nach bestimmten versteckten Regeln skaliert werden.
Ich befürchte, dass die Funktion „Präsentation speichern“ dem Benutzer nicht erlaubt, diese Regeln anzupassen.
Eine Alternative: Sie können mithilfe von Skripten (z. B. über die Python-Schnittstelle in JMP) die Größe und Position der in die Präsentation eingefügten Diagramme festlegen.
Alternativ können Sie sich für weitere Vorschläge per E-Mail an support@jmp.com wenden.
Vielleicht gibt es eine versteckte Einstellung unter „Präsentation speichern“ ...
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 );