Exporter plusieurs graphiques avec différents scriptsBonjour les utilisateurs de Jmp,
J'essaie d'exporter plusieurs graphiques dans Jmp. Existe-t-il un moyen de sélectionner les scripts correspondants et d'exporter tous les graphiques ensemble.
Merci beaucoup !
I
Automatisation et scriptsPersonnalisation de masseRe : Exporter plusieurs graphiques avec différents scriptspmroz,
Je reçois toujours une fenêtre vide lorsque j'essaie d'ouvrir "Graph". Y a-t-il quelque chose de fondamental que je dois inclure? Mon objectif est de mettre les trois tracés (Graphs, Graphs2 et Graphs3) dans une seule fenêtre afin que je puisse copier et coller dans Powerpoint.
Merci beaucoup pour toute contribution.
Neil
Re : Exporter plusieurs graphiques avec différents scriptspmroz,
Merci beaucoup pour la contribution ! En tant que novice, je m'habitue encore au flux et aux fonctionnalités de JSL, et je serais heureux d'avoir des conseils d'expert. J'ai inclus le script entier (réduit), pour vous montrer le flux global. Sur la base d'une expérience de codage précédente qui considérait une macro principale et des sous-routines, j'essayais d'encapsuler des routines dans des expressions afin qu'elles puissent être appelées plus tard dans le programme ("Files()", "Join_files" et "Con").
J'ai changé "Graphs = Eval Expr" en "Graphs = Expr", et tout fonctionne. Je ne savais pas si cela nécessitait un Eval car il était appelé dans une autre expression (Join_files).
J'avais utilisé des graphiques dans une nouvelle fenêtre, mais j'avais toujours une fenêtre vide.
Un grand merci encore pour votre temps précieux.
Neil
Files = Expr(
SD1 = "C:\Users\";
path = {};
f1 = Files In Directory( SD1, recursive(1));
For( i = 1, i <= N Items( f1 ), i++,
If(Ends With( f1[i], ".csv" ),
f1[i] = Convert File Path(SD1) || f1[i];
b= f1[i];
Insert Into(path, b)
);
);
);
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,q, "_"); // only sample name, no replicate suffix
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale,:thick),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
graphs,
);
);
);
Columns = Eval Expr(
dt << New Column( "Sample 2",
Character,
"Nominal",
Set Each Value(samplename2),
Set Display Width( 150 ),
);
);
Graphs = Eval Expr(
/*set graphs*/
dt << New Table Property( "Cumulative Resistivity",
Graph Builder(
Size( 591, 496 ),
Show Control Panel( 0 ),
Grid Color( "Black" ),
Graph Spacing( 2 ),
Variables(
X( :Name( "Diameter (um)" ) ),
Y( :Name( "flow resistivity (Pa*s/m^2)") ),
Overlay( :Sample )
),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 20 ) ) ),
SendToReport(
Dispatch(
{},
"Diameter (um)",
ScaleBox,
{Min( 0 ), Max( 80 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row(
{Show Major Grid( 1 ), Show Minor Grid( 1 )}
)}
),
Dispatch(
{},
"flow resistivity (Pa*s/m^2)",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 100000 ),
Max( 10000000000000 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
)
)
)
);
Con = Expr(
dt = {};
// Sort list ascending (sample replicates) //
For( i = 1, i <= N Table(), i++,
table = data table(i);
insert into(dt, table);
sort list into(dt)
);
// Concatenate each file (sample replicates) //
dt_all= Data Table( dt[1] ) << Concatenate(
Data Table( dt[2] ),
Data Table( dt[3] ),
Output Table( "Concatenated Table" )
);
// Rename file to sample name and Save //
dt_all << set name(samplename2);
dt_all:Sample << Set Display Width( 150 ); // Widen to include entire title
p = dt_all << get name;
dt_all << Save(SD1 || p);
close(dt_all, no save);
close(dt[1], no save);
close(dt[2], no save);
close(dt[3], no save);
);
Files();
Join_files();
Con();
Re : Exporter plusieurs graphiques avec différents scriptsSalut NRW - Je pense que vous compliquez un peu les choses.Vous n'avez pas besoin de mettre votre logique de jointure dans une expression.Exécutez-le simplement tel quel sans expr() environnant.
Le graphiques la logique a été coupée dans votre message, mais que je ferais comme expr() , plutôt que eval expr() .
Enfin dans votre nouvelle fenêtre mettez simplement
graphs,
et pas
graphs("Cumulative Resistivity"),
Re : Exporter plusieurs graphiques avec différents scriptsGens,
Je viens de tomber sur ce fil, et je pense que c'est ce que je recherchais. Cependant, j'essaie toujours de surmonter la bosse d'apprentissage JSL et je n'arrive pas tout à fait à obtenir le résultat.
Résumé rapide :
- ensembles de données CSV fusionnés dans une seule feuille JMP
- scripts de tracé créés et enregistrés dans la table de données
- Lors de l'ouverture de la table ultérieurement, j'exécute les trois scripts de tracé, puis je copie et colle chaque tracé dans une seule diapositive Powerpoint (les images correspondant aux tracés ont déjà été collées dans la même diapositive)
Je cherche à minimiser les étapes de clic et de copie en regroupant au moins les trois graphiques et en les obtenant dans un format qui peut exporter les trois en même temps. J'ai exploré si cela devait être fait avec un tableau de bord ou un journal qui, d'une manière ou d'une autre, regroupe et enregistre sous forme de fichier que je peux récupérer. Le Saint Graal serait d'avoir mes images jpg accouplées avec mes tracés JMP, puis transférées vers PP.
J'ai essayé la commande Vlist mais obtenez une fenêtre vide lorsque vous essayez d'obtenir l'intrigue qui a été enregistrée en tant que script. Une partie des morceaux de script pertinents sont affichés.
Toute pensée ou contribution est la bienvenue.
Neil
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,q, "_"); // only sample name, no replicate suffix
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
/*diameter and pore pixel count*/
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale,:thick),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="report summ_.JPG" style="width: 829px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><span class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32980i018D050D35ACCDD9/report%20summ_.JPG" role="button" title="report summ_.JPG" alt="report summ_.JPG" /></span></SPAN></SPAN></SPAN>
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
<BR />Graphs = Eval Expr(<BR />/*set graphs*/<BR />dt << New Table Property( "Cumulative Resistivity",<BR />Graph Builder(<BR />Size( 591, 496 ),<BR />Show Control Panel( 0 ),<BR />Grid Color( "Black" ),<BR />Graph Spacing( 2 ),<BR />Variables(<BR />X( :Name( "Pore Diameter (um)" ) ),<BR />Y( :Name( "Cumulative flow resistivity (Pa*s/m^2)") ),<BR />Y( :Pore Size Dist ),<BR />Y( :Name( "Cumulative Pore fraction (pore+solid)" ) ),<BR />Overlay( :Sample )<BR />),<BR />Elements( Position( 1, 1 ), Line( X, Y, Legend( 20 ) ) ),<BR />Elements( Position( 1, 2 ), Line( X, Y, Legend( 18 ) ) ),<BR />Elements( Position( 1, 3 ), Line( X, Y, Legend( 19 ) ) ),<BR />SendToReport(<BR />Dispatch(<BR />...<BR />
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
graphs("Cumulative Resistivity"),
);
);
);
Re : Exporter plusieurs graphiques avec différents scriptsSalut @JMPdécouvreur ,
Je venais avec une solution similaire à @pmroz , et j'aime ce qu'ils ont fait.
Voici ce que je pensais, mais pas aussi agréable que de créer un document Word, etc. Vous pouvez également les enregistrer directement dans des fichiers PPT. J'ai créé les rapports dans le JSL juste pour les avoir à portée de main, mais les boucles for peuvent fonctionner si vous les avez déjà ouvertes. Mais, si vous écrivez un script qui génère les rapports, vous pouvez simplement référencer le rapport par nom de variable au lieu de rechercher une liste de fenêtres.
Names Default To Here( 1 );
dt = open("$sample_data\Big Class.jmp");
rpt1 = dt << Bivariate( Y( :weight ), X( :height ) );
rpt2 = dt << Oneway( Y( :height ), X( :age ), X Axis Proportional( 0 ) );
rpt3 = dt << Fit Group(
Oneway( Y( :weight ), X( :age ), X Axis Proportional( 0 ) ),
Bivariate( Y( :weight ), X( :height ) ),
<<{Arrange in Rows( 2 )}
);
reportlist = {};
For( i = 0, i <= N Items( Window() ), i++,
If(
!Is Missing( Regex( Window( i ) << getwindow title, "Fit" ) ) == 1 | !Is Missing(
Regex( Window( i ) << getwindow title, "Oneway" )
) == 1 | !Is Missing( Regex( Window( i ) << getwindow title, "Bivariate" ) ) == 1,
Insert Into( reportlist, Window( i ) << get window title )
)
);
For( i = 1, i <= N Items( reportlist ), i++,
picbox = Window( reportlist[i] ) << getPicture;
picbox << SaveImage(
"whatever your local directory to save is\pic" || Char( i ) || ".png"
);
);Ceux-ci devraient vous permettre de bien travailler sur votre chemin.
Bonne chance!,
DS
Re : Exporter plusieurs graphiques avec différents scriptsVoici un exemple qui exporte trois sorties graphiques de Big Class vers un document Word.
dt = open("$sample_data\Big Class.jmp");
dist = expr(dt << Distribution(
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :age ) )
));
gb1 = expr(dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :sex ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) )
));
gb2 = expr(dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
dist,
page break box(),
gb1,
page break box(),
gb2
);
);
chart_output << save msword("c:\temp\SampleCharts.doc", Native);