Hinzufügen von Bildern zu einer Datentabelle aus einem VerzeichnisFreunde, ich verwende JMP12 und möchte meiner Datentabelle eine Reihe von PNG-Bildern hinzufügen.Ich möchte dies tun, damit ich sie als Beschriftungen in einem Streudiagramm von Flags mit statistischer Mittelwertanpassung verwenden und das PNG (ein Bild eines Kontrollgrenzendiagramms) aufrufen kann, indem ich mit der Maus über den Wert jedes Flags fahre.Ich habe ein SAS-Video von Gail Massari gefunden, in dem Staatsvogelbilder von einer Wikipedia-Web-URL importiert wurden. Anders als er liegen meine Bilder in einem Ordner auf einer lokalen Festplatte.
Ich habe die Anleitung ausprobiert:
{"",{ newimage(open( "drive:\file path\filename.png",png))}" als Eintrag in jeder entsprechenden Zeile, aber alles, was ich als Gegenleistung bekomme, ist eine „Empty()“-Ausgabe.
Ich bin neu in der JSL-Skripterstellung und mir sind die Ideen ausgegangen.
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenVerwenden Sie vor dem Öffnen die Funktion If (File Exits(), Open(); etc.; );
For( i = 1, i <= nr, i++,
If ( File Exists( :PNG_URL[i]|| ".png" ),
// do this only of the file is found
tp = Open( :PNG_URL[i], "png" );
Latest_Report:PNGs[i] = New Image( tp );
) // end if
);
Latest_Report:PNGs << label( 1 );
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenAufbauend auf diesem Thema der Verwendung von Bildern (z. B. *.png) als Beschriftungen in Diagrammen unter Verwendung der folgenden Schleife:
For( i = 1, i <= nr, i++,
tp = Open( :PNG_URL[i], "png" );
Latest_Report:PNGs[i] = Neues Bild (tp)
);
Latest_Report:PNGs << label (1);
Ich habe erfahren, dass jedes Mal, wenn der OPEN-Befehl eine der PNG-Dateien nicht findet, das Skript stoppt und ab diesem Zeitpunkt alle anderen Zeilen mit den Ordneradressen ignoriert werden, wobei JMP als Ergebnis jeweils „(Leer)“ liefert verbleibende Zelle der Tabelle.Das bedeutet, dass mir am Ende wertvolle Informationen nicht angezeigt werden, weil eine Zeile einen Fehler in der Schleife auslöst.
Was ist der beste Weg, dies zu überschreiben?
Das erneute Ausführen der Schleife fügt nur eine weitere Spalte hinzu (in diesem Fall: PNG_URL 2) und liefert (wie erwartet) das gleiche Ergebnis.
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenNochmals vielen Dank für Ihre Zeit.
Die Interaktion in dieser Community war eine wunderbare Lernerfahrung.
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenJournale sind Momentaufnahmen Ihrer Anzeige.Eine Möglichkeit besteht darin, als .JRP mit eingebetteten Tabellen zu speichern. Wenn dann ein anderer es öffnet, sind die zugrunde liegende Tabelle und der Bericht aktiv.
In JMP 13 und 14 Als interaktives HTM speichern speichert die Anzeige und die Beschriftungen werden eingebettet.
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügengzmorgan, das war großartig und hat wunderbar funktioniert. Großer Dank!!
Eine letzte Frage,
Können Zeitschriften in JMP.12 keine Beschriftungen anzeigen, wenn Sie Datenpunkte in Diagrammen auswählen oder mit der Maus darüber fahren?Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenBefindet sich der vollständige Pfad in einer separaten Spalte oder haben Sie eine Spalte für den Pfad und eine Spalte für den Dateinamen?
Angenommen, es handelt sich um eine Spalte mit dem Namen :Path. Da es sich dann alles um PNG-Dateien handelt
tp = Open( :Path[i], "png" );
Wenn Sie zwei Spalten :Dir und :Name haben, verwenden Sie etwa Folgendes, wenn für den Verzeichnisnamen kein abschließender Schrägstrich vorhanden ist
tp = Open( :Dir[i] || "\" || :Name[i], "png" );
Ältere Versionen von JMP erforderten eine eval()
tp = Open( eval( :Dir[i] || "\" || :Name[i] ) , "png" );
Probieren Sie es aus, bevor Sie Ihr Skript ausführen. Führen Sie einfach eine Zeile aus und ersetzen Sie i durch eine Zahl, um sicherzustellen, dass der Dateipfadname korrekt ist.
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenDas ist genau das, was ich brauche und die Lösung ist einfach elegant; Ich bin sehr dankbar für Ihre Zeit und Ihre Hilfe.
Nun die Herausforderung...
Ich habe meine PNG-Dateien in 46 einzelnen Ordnern und die PNG-Dateien haben denselben Namen; zum Beispiel habe ich „ graph30.png " wird 20 bis 30 Mal wiederholt, aber jede Datei wird in einem anderen Ordner gespeichert, da es sich um ein Bild einer anderen Kontrollgrenzentabelle handelt.Ich habe den Pfad\Dateinamen für jeden bereits als diskrete Spalte in meiner Datentabelle.
Was wäre für jeden der beste Weg? graphXX.png basierend auf dem spezifischen Pfad\Dateinamen, der bereits in einer zusammenhängenden Spalte verfügbar ist?
Betreff: Bilder aus einem Verzeichnis zu einer Datentabelle hinzufügenRSantana, Gails Video demonstrierte, wie man Bilder von URLs und nicht von eingebetteten Bildern erhält.
Versuchen Sie es mit dem Skript, das mit „Names“ beginnt und standardmäßig „Here(1)“ lautet. Es wurde in JMP 12 erstellt.
Beachten Sie: Wenn alle Ihre Bilder vom gleichen Typ sind, können Sie die Zeilen 11 und 12 vereinfachen. Angenommen, alle Ihre Bilder sind PNG, dann benötigen Sie Zeile 11 nicht: _typ = word() und Zeile 12 können Sie die Funktionen Eval( EvalExpr() ) entfernen. Ich brauchte es für dieses Beispiel, weil die Beispielbilder unterschiedliche Typen haben und in JMP 12 das Öffnen die Variable _ext nicht auswerten würde; Es war erforderlich, dass der Ausdruck ersetzt und dann ausgewertet wurde.
Dies wäre die vereinfachte Zeile 12 tp = Open("$Sample_images/"||_fid[i], "png" );
Kopieren Sie dies und fügen Sie es in ein JMP-Skriptfenster ein, führen Sie es aus und bewegen Sie dann den Mauszeiger über die Punkte. Ein letzter Kommentar dazu ist die Einbettung des „Codes“ jedes Bildes in Ihre Tabellenspalte.
Names Default to Here(1);
_fid = Files in Directory("$sample_images");
nr = nitems(_fid);
//Create a table
dt = New Table("demo",add rows(nr),
New Column("X", <<SET values=""></SET>