Speichern von Grafiken als PNG oder JPEGHallo,
Ich habe ein Skript erstellt, das es dem Benutzer ermöglicht, eine Excel-Datei auszuwählen, sie zu verarbeiten, Spalten hinzuzufügen oder zu formulieren, den Graph Builder zu öffnen und sie mit einem lokalen Datenfilter zu zeichnen.
Meine Frage ist:
1. Wie speichere ich Diagramme, indem ich mithilfe des Skripts die lokale Datenfilteroption auswähle? Zum Beispiel habe ich zwei lokale Datenfilter, sagen wir Trimset(10, 100, 101, 110, 111, 1000, 11111) und eine Formel (Ja oder Nein) und ich muss Diagramme zeichnen wie (Alle Trimset-Werte mit Formel NEIN) und (Jeder Trimset-Wert mit Formel JA) .. also insgesamt 8 Diagramme.
2. In meinem Diagramm möchte ich die Aussage unter dem Diagramm „Wo Trimset ist … und Formel ist NEIN“ enthalten.
3. Speichern Sie Diagramme in einem Ordner als PNG- oder JPEG-Dateien
4.JMP-Datentabellen und Diagrammerstellungstabellen werden ohne Speichern beendet.
5. Wie erstelle ich eine Add-in-Funktion, um den Vorgang mit nur einem Klick durchzuführen, da ich dies für 100 oder mehr Dateien tun muss?
Ich habe alle Diskussionen gelesen, komme aber nicht auf die richtige Antwort. Ich schätze deine Hilfe sehr.
Danke
Betreff: Grafiken als PNG oder JPEG speichernJa, eine For-Schleife ist verfügbar.JSL ist eine sehr vollständige Sprache mit allen Funktionen, die man von einer Computersprache erwarten würde.
Ich empfehle Ihnen, die ersten Kapitel des Skripthandbuchs zu lesen, damit Sie ein Gefühl für alle Komponenten der Sprache und deren Implementierung bekommen.
Wenn Sie mir ein paar Informationen darüber geben könnten, mit welchen Computersprachen Sie arbeiten, würde es mir helfen, Ihnen JSL-Beispiele in Begriffen zur Verfügung zu stellen, mit denen Sie vertraut sind.
Betreff: Grafiken als PNG oder JPEG speichernVielen Dank, Txnelson, für die Antwort. Es war sehr nützlich. Wenn ich eine for-Schleife in einem Datenfilter erstellen möchte, ist das möglich? Dass es jede Bedingung automatisch durchgehen und die Diagramme zeichnen kann. Wie Sie vorgeschlagen haben, werde ich mir die Add-In-Funktion im Skript-Handbuch ansehen.Betreff: Grafiken als PNG oder JPEG speichernHier ist ein anderer Ansatz, ohne den Datenfilter zu verwenden:
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" ) );
deletedirectory("$temp/myPics");
createDirectory("$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(evalexpr(biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Automatic Recalc( 1 ),
Fit Line( {Line Color( {213, 72, 87} )} ),
where( age == expr(thisAge) & sex == expr(thisSex) )
)));
parentBox = Report( biv ) << parent;
picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
biv<<CLOSEWINDOW></CLOSEWINDOW>
Files In Directory("$temp/myPics") = {"age12sexF.png", "age12sexM.png", "age13sexF.png", "age13sexM.png", "age14sexF.png", "age14sexM.png", "age15sexF.png", "age15sexM.png", "age16sexF.png", "age16sexM.png", "age17sexF.png", "age17sexM.png"};
where clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere-Klausel oben im Diagramm
In diesem Fall befindet sich die where-Klausel über der Ausgabe der Plattform, daher habe ich die <Betreff: Grafiken als PNG oder JPEG speichern
Mein erster Punkt ist, dass Sie die Diskussionen nicht lesen sollten, um zu lernen, wie man JMP-Skripts erstellt.Sie sollten den JSL Scripting Guide lesen.
Hilfe==>Bücher==>Skripthandbuch
Wenn Sie die Dinge dann nicht zum Laufen bringen können, ist die Diskussions-Community eine großartige Ressource, die Ihnen weiterhilft.
Lassen Sie mich einen Blick auf die Fragen werfen, die Sie stellen.
1. Wie verwendet man einen lokalen Datenfilter und speichert dann die Ausgabe?
Unten finden Sie ein grobes Skript, das Ihnen zeigt, wie Sie dies auf sehr ungewöhnliche Weise tun können
dt=Open(<PATH to="" your="" data="https://community.jmp.com/" table="">);
gb=Graph Builder(
Size( 527, 453 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 13 ) ), Smoother( X, Y, Legend( 14 ) ) )
);
Thefilter=gb<<LOCAL data="https://community.jmp.com/" filter=""></LOCAL></PATH>
Der Code für den Graph Builder und jeden der lokalen Filter ist unter den roten Dreiecken verfügbar.Wenn Sie diese auswählen und auf „Skript speichern“ gehen, erhalten Sie den Code, der für die verschiedenen Fälle erforderlich ist.Starten Sie einfach Graph Builder.Speichern Sie dann das Skript für den Graph Builder.Öffnen Sie dann den lokalen Filter.Stellen Sie es auf Ihren ersten Fall ein (Where-Klauseln) und speichern Sie dann das Skript.Als nächstes ändern Sie den lokalen Filter auf den nächsten Fall und speichern das Skript usw.
2. Die Anweisung unter dem Diagramm wird im PNG-Format gespeichert
3. Sie müssen lediglich in der Funktion „Bild speichern“ den Pfad angeben.Dies kann programmgesteuert gehandhabt werden, sodass es jeder gewünschten Benennungsmethode folgen kann.
4. Das Beispielskript zeigt die Methode dazu
5. Im Scripting Guide finden Sie eine sehr gute Dokumentation zum Erstellen eines Add-Ins.Die Antwort ist viel zu lang, als dass sie in der Diskussion behandelt werden könnte
Betreff: Grafiken als PNG oder JPEG speichernDieser Code fügt jedem Datenfilter ein kleines Menü hinzu - Wählen Sie Ihre Spalten aus und klicken Sie auf „OK“, um durch die Einträge zu blättern und das GraphBuilder-Diagramm automatisch zu speichern.
(Spalten mit kontinuierlichen Werten werden nicht aufgeführt)

Names Default to HERE(1);
if(not(namespaceExists("autoAnimate")),New NameSpace("autoAnimate"));
autoAnimate:update = function({},
Try (autoAnimate:DFTopLB = Current Report()["Local Data Filter", List Box( 1 )], stop());
Try(autoAnimate:myDFTPBs = (Current Report()["Local Data Filter", Lineup Ruler Box( 1 ), List Box( 1 )] << Xpath( "//TabPageBox" )),stop());
// collect Data Fitlers with ListBoxes, remove the continuos ones.
autoAnimate:myDFLBs ={};
For Each ( {TPB,i}, autoAnimate:myDFTPBs, tmp=(TPB << xpath( "//ListBoxBox" ));If(NItems(tmp),Insert Into(autoAnimate:myDFLBs,tmp[1]),Remove from(autoAnimate:myDFTPBs,i) ));
// which columns are used?
autoAnimate:DFCols = Transform Each( {TPB}, autoAnimate:myDFTPBs, Trim( Word( 1, TPB << Get Title, "(" ) ) );
// what are the entries? (for the filename)
autoAnimate:myDFLBItems = autoAnimate:myDFLBs << get items;
// how many entries?
autoAnimate:myDFLBNItems = Transform Each( {items}, autoAnimate:myDFLBItems, N Items( items ) );
// variales for the for loops
chars = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii"};
// append a Display Box:
Try(autoAnimate:animatePane << delete);
autoAnimate:DFTopLB << append( autoAnimate:animatePane = V List Box (Spacer Box( size( 0, 20 ) ),Panel Box( "cycle selected + save", V List Box( colSelection = List Box( autoAnimate:DFCols ), H List Box( Button Box("update",autoAnimate:update()),Spacer Box (size(40,0)),Button Box( "start", autoAnimate:animateNsave() ) )) ) ));
);
autoAnimate:animateNsave = Function( {},
// which DFs are selected?
selectedCols = colselection << Get Selected Indices;
// compose the expression
expression = "";
xx=1;
// for loop for every active DF:
For( i = 1, i <= N Items( autoAnimate:myDFTPBs ), i++,
expression = expression || If( Contains( selectedCols, i ),
"For(" || chars[i] || "=1," || chars[i] || "<=" || Char( autoAnimate:myDFLBNItems[i] ) || "," || chars[i] || "++,__LB" || Char( i ) ||
"__ << clear selection << set selected(" || chars[i] || ");",
"if(1,"
)
);
// save current Graph builder Plot -- how about other reports?
expression = expression || "wait();(current report()<< XPath(\!"//OutlineBox[@helpKey='Graph Builder']\!"))<<SAVE picture=""></SAVE>Betreff: Speichern von Grafiken als PNG oder JPEG@hogi , dieses Skript ist großartig! Ich teile meine Analyseergebnisse mit vielen Nicht-JMP-Benutzern und es ist sehr hilfreich, dieses Menü zu jedem Diagramm mit einem lokalen Datenfilter hinzuzufügen.
*Für Anfänger kann es hilfreich sein zu wissen, dass das Skript von @hogi eigenständig ist und zu einer Datentabelle hinzugefügt werden kann (indem Sie das rote Dreieck oben im linken Bereich Ihrer Datentabelle verwenden und „Neues Skript“ auswählen). Wenn Sie dieses Skript dann ausführen, wird das kleine Menü zum aktuell aktiven Bericht hinzugefügt, auf den bereits ein lokaler Datenfilter angewendet wurde.
Betreff: Speichern von Grafiken als PNG oder JPEGEs ist gerade einfacher geworden 
Ich habe die Funktionalität zur Graph Builder-Symbolleiste hinzugefügt *)
*) ab sofort über den Marktplatz erhältlich:
https://marketplace.jmp.com/appdetails/Graph%20Builder%20Toolbar

Betreff: Speichern von Grafiken als PNG oder JPEG... aber immer noch die Version mit dem gleichen Fehler.
Wenn Sie es beschleunigen möchten, ändern Sie bitte das Argument von wait() von () in ( 0) :
