Exportieren mehrerer Graphen mit unterschiedlichen SkriptenHallo Jmp-Benutzer,
Ich versuche, mehrere Diagramme in Jmp zu exportieren. Gibt es eine Möglichkeit, die entsprechenden Skripte auszuwählen und alle Diagramme zusammen zu exportieren?
Vielen Dank !
I
Automatisierung und SkriptingMassenanpassungBetreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenpmroz,
Ich erhalte immer noch ein leeres Fenster, wenn ich versuche, "Graph" zu öffnen. Gibt es etwas Grundsätzliches, das ich einbeziehen muss? Mein Ziel ist es, alle drei Diagramme (Graphs, Graphs2 und Graphs3) in einem Fenster zu platzieren, damit ich sie kopieren und in Powerpoint einfügen kann.
Vielen Dank für jede Eingabe.
Neil
Betreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenpmroz,
Vielen Dank für die Eingabe! Als Neuling gewöhne ich mich immer noch an den JSL-Fluss und die Funktionalität und würde mich über fachkundige Anleitung freuen. Ich habe das gesamte Skript (abgespeckt) eingefügt, um Ihnen den Gesamtablauf zu zeigen. Basierend auf früheren Codierungserfahrungen, bei denen ein Hauptmakro und Unterroutinen berücksichtigt wurden, habe ich versucht, Routinen in Ausdrücke zu kapseln, damit sie später im Programm aufgerufen werden können ("Files()", "Join_files" und "Con").
Ich habe "Graphs = Eval Expr" in "Graphs = Expr" geändert und alles funktioniert. Ich war mir nicht sicher, ob dies ein Eval benötigte, da es in einem anderen Ausdruck (Join_files) aufgerufen wurde.
Ich hatte Grafiken in einem neuen Fenster verwendet, bekomme aber immer noch ein leeres Fenster.
Nochmals vielen Dank für Ihre wertvolle Zeit.
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();
Betreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenHallo NRW, ich glaube, Sie verkomplizieren die Dinge etwas.Sie müssen Ihre Verknüpfungslogik nicht in einen Ausdruck einfügen.Führen Sie es einfach so aus, wie es ist, ohne das umgebende expr().
Der Grafiken Logik wurde in deinem Posting abgeschnitten, aber das würde ich so machen Ausdruck() , statt eval expr() .
Schließlich in Ihrem neuen Fenster einfach ablegen
graphs,
und nicht
graphs("Cumulative Resistivity"),
Betreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenLeute,
Ich bin gerade über diesen Thread gestolpert, und ich denke, es ist das, wonach ich gesucht habe. Ich versuche jedoch immer noch, den JSL-Lernbuckel zu überwinden, und ich kann das Ergebnis nicht ganz erzielen.
Kurze Zusammenfassung:
- Zusammengeführte CSV-Datensätze in einem JMP-Blatt
- erstellte und gespeicherte Plotskripte in der Datentabelle
- Wenn ich die Tabelle zu einem späteren Zeitpunkt öffne, führe ich die drei Plot-Skripte aus, dann kopiere ich jeden Plot und füge ihn in eine einzelne Powerpoint-Folie ein (Bilder, die Plots entsprechen, wurden bereits in dieselbe Folie eingefügt).
Ich versuche, die Klick- und Kopierschritte zu minimieren, indem ich zumindest alle drei Diagramme zusammenfasse und sie in einem Format erhalte, das alle drei gleichzeitig exportieren kann. Ich habe untersucht, ob dies mit einem Dashboard oder Journal erfolgen muss, das irgendwie gruppiert und als Datei gespeichert wird, die ich überziehen kann. Der heilige Gral wäre, meine JPG-Bilder mit meinen JMP-Plots zu paaren und dann zu PP zu übertragen.
Ich habe den Vlist-Befehl ausprobiert bekomme aber ein leeres Fenster beim Versuch, die als Skript gespeicherte Handlung abzurufen. Ein Teil der relevanten Drehbuchstücke wird gezeigt.
Alle Gedanken oder Beiträge sind willkommen.
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"),
);
);
);
Betreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenHallo @JMPdiscoverer ,
Ich habe mir eine ähnliche Lösung ausgedacht @pmroz , und ich mag, was sie getan haben.
Hier ist, was ich dachte, aber nicht so schön wie das Erstellen eines Word-Dokuments usw. Sie können sie auch direkt in PPT-Dateien speichern. Ich habe die Berichte in der JSL erstellt, nur um sie griffbereit zu haben, aber die for-Schleifen können funktionieren, wenn Sie sie bereits geöffnet haben. Wenn Sie jedoch ein Skript schreiben, das die Berichte generiert, können Sie den Bericht einfach anhand des Variablennamens referenzieren, anstatt eine Liste von Fenstern zu finden.
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"
);
);Diese sollten Sie auf Ihrem Weg gut arbeiten lassen.
Viel Glück!,
DS
Betreff: Mehrere Diagramme mit unterschiedlichen Skripten exportierenHier ist ein Beispiel, das drei grafische Ausgaben von Big Class in ein Word-Dokument exportiert.
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);