Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Wenn ich die Funktion „SEITE“ im Graph Builder verwendet habe und jetzt mehrere Diagramme auf derselben Seite habe, wie kann ich die Diagramme im Graph Builder einzeln in einer Schleife abrufen, um sie als PNG zu speichern?
Dies ist ein Beispielcode von @Craige
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
Delete Directory( "$temp/myPics" );
Create Directory( "$temp/myPics" );
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
Eval(
Eval Expr(
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
)
);
parentBox = (Report( gb ) << parent)< picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
gb << closewindow;
);
);
Close( ages, "nosave" );
Close( sexes, "nosave" );
Show( Files In Directory( "$temp/myPics" ) );
Danke schön.
Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Eine pptx-Datei ist nur eine getarnte ZIP-Datei. Wenn Sie die Erweiterung von .pptx in .zip ändern (möglicherweise müssen Sie die Ordnereinstellungen in Windows ändern, um bekannte Dateierweiterungen anzuzeigen). In der ZIP-Datei befindet sich ein Ordner namens „media“, der alle Bilder enthält.
Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Ich habe es auf dem Powerpoint mit einer Schleife zum Laufen gebracht. Danke WendyBetreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Danke Melanie. Ich werde das versuchen.Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Powerpoint funktioniert, obwohl ich nicht sicher bin, wie man die Bilder aus PowerPoint herausbekommt.
Ich habe experimentiert und hatte etwas Glück beim Speichern als HTML. Wenn Sie einen Bericht als HTML speichern, werden alle Bilder in einem Ordner namens gfx gespeichert. Wenn Sie die Datei immer wieder speichern, wird der GFX-Ordner nicht wie die HTML-Seite neu geschrieben, sondern alle Bilder werden einfach zum selben Ordner hinzugefügt.
Ich hatte mehrere Versionen dieses Beispielskripts, an denen wir in Nachrichten arbeiteten, und manchmal speicherte es jedes Diagramm einzeln, manchmal nicht. Mit der aktuellen Iteration scheint es zu funktionieren. Wenn dies nicht der Fall ist, gibt es stattdessen Code, der das Speichern in Powerpoint durchführt und der auskommentiert ist. Versuchen Sie, dies mit Ihrem komplexeren Skript zum Laufen zu bringen. Beachten Sie, dass die endgültige HTML-Seite nur den allerletzten Graphbuilder-Bericht enthält, nicht alle. Im gfx-Ordner erhalte ich ein Bild für jedes Diagramm und auch ein Bild für jedes Legendenfeld – Sie müssen sie aussortieren.
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
unique lotid = Associative Array(dt:lot_id);
unique Wafer = Associative Array(dt:wafer);
currentid = unique lotid << First;
currentwafer = unique Wafer << First;
For( iwfr = 1, iwfr <= N Items( unique Wafer ), iwfr++,
nextwafer = unique Wafer << Next( currentwafer );
Eval(
Eval Expr(
gb4 = dt << Graph Builder(
Variables(
X( :NPN1 ),
Y( :PNP1 ),
Page( :SITE ),
Group X( :PNP2 ),
Group Y( :NPN2 ),
Color( :lot_id )
),
Elements( Treemap( X, Y, Legend( 24 ), Summary Statistic( "% of Total" ) ) ),
where( Wafer == Expr( currentwafer ) ),
Display( :SITE, Size( 181, 153 ), List Display ),
)
)
);
// powerpoint save
//If( File Exists("$desktop/wow.pptx"), gb4 << Save Presentation( "$desktop/wow.pptx", "Append", "PNG" ),
// gb4 << Save Presentation( "$desktop/wow.pptx", "PNG" )
//);
// html save
gb4 << Save HTML( "$desktop/wow.html", "PNG" );
gb4 << Close Window;
currentid = unique lotid << First;
);Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Ja, es gibt ein Beispiel im Scripting Index.
- Klicken Sie auf das Hilfemenü und wählen Sie Scripting Index.
- Eingeben Präsentation speichern im Suchfeld.
Der Skriptindex enthält die Syntax, eine kurze Beschreibung und ein Beispielskript dafür Präsentation speichern . Zur besseren Übersicht habe ich ein Bild des Fensters beigefügt.
Viel Glück mit Ihrem Skriptprojekt!
Wendy
Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Ich denke, damit kann ich arbeiten,
Ist es nur eine Skriptzeile, um den Powerpoint zu erhalten?
Danke WendyBetreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Mit Page() werden die vollständigen Diagramme nicht in einzelnen DisplayBoxes gespeichert, die in einzelnen PNG-Dateien gespeichert werden können. Der Export in eine PowerPoint-Datei würde die Seiten aufteilen. Andernfalls müssten Sie einen lokalen Datenfilter, Where() oder By() verwenden.
Wendy
Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Hallo Wendy,
Vielen Dank für die Idee, By zu verwenden. Der Grund, warum ich die PAGE-Funktion möchte, ist, dass sie mir die Möglichkeit gibt, die Skalen zu sperren und alle anzeigen kann, nicht nur die ausgewählte.
Gibt es zufällig eine Möglichkeit, mit der PAGE-Funktion auf verschiedene Diagramme zum Plotten zuzugreifen? Es wäre wirklich hilfreich.
Vielen Dank.
Betreff: Wie speichere ich Diagramme, wenn ich PAGE im Graph Builder JSL verwende?Hallo,
Persönlich würde ich in diesem Fall ein By() anstelle von Page() verwenden, da mit einem By eine Liste von Graph Builder-Objekten zurückgegeben wird. Ich kann dann die Liste der Objekte durchlaufen, um jede PNG-Datei zu speichern. Zum Beispiel,
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
gb = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
By( :age, :sex )
);
For( i = 1, i <= N Items( gb ), i++,
fName = Report( gb[i] )[Outline Box( 1 )] << Get Title;
Report( gb[i] )[Outline Box( 1 )] << Save Picture( "$TEMP/myPics/" || fName || ".png", "PNG" );
);
Hoffe das hilft!
Wendy