Salut,
Je souhaite utiliser JSL pour générer un rapport (.ppt).
Je souhaite exporter deux graphiques : un graphique à 5 groupes et un graphique à 3 groupes.
Je souhaite que chaque groupe ait une taille de 250*250, donc un graphique à 5 groupes devrait avoir une taille de 1250*250 et un graphique à 3 groupes devrait avoir une taille de 750*250.
J'utilise la fonction « Enregistrer la présentation » pour exporter les graphiques.
La taille des groupes (5 groupes) correspond à celle des graphiques exportés manuellement, contrairement à celle des groupes (3 groupes). Ces derniers sont compressés à 75 % de leur taille réelle.
Comment exporter plusieurs graphiques à la même échelle et à la même résolution ?
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 );
Salut,
Cela ne fonctionne pas. Tout semble correct dans JMP, mais après l'exportation vers PPT, les échelles des graphiques sont différentes.
Salut @LT ,
Vous semblez avoir raison. Cependant, le problème ne se situe pas là où je le pensais.
Grâce aux indications du premier lien, vous pouvez accomplir beaucoup de choses — encore plus que je ne le pensais possible lorsque j'ai écrit ma première réponse.
Ce code crée des graphiques avec les proportions demandées :
Trois cadres avec 250x250 -> 750x250
et cinq cadres avec 250x250 -> 1250x250.
Lorsque vous copiez les graphiques dans le presse-papiers et les collez dans un logiciel de graphisme, vous pouvez constater que tous les sous-graphiques ont la même taille.
Le code met également en évidence le problème réel :
Quelle que soit la taille de l'image PNG ou JPG, elle peut être redimensionnée dans la présentation selon certaines règles implicites.
Je crains que la fonction << enregistrer la présentation ne permette pas à l'utilisateur de modifier ces règles.
Solution de contournement : vous pouvez utiliser des scripts (par exemple via l’interface Python de JMP) pour spécifier la taille et la position des graphiques insérés dans la présentation.
Vous pouvez également envoyer un courriel à support@jmp.com pour obtenir d'autres suggestions.
Il existe peut-être un paramètre caché dans << enregistrer la présentation ...
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 );