So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Hallo allerseits,
Ich bin an die Grenzen meiner (eher begrenzten) Skriptfähigkeiten gestoßen und suche Hilfe.
Was ich derzeit versuche, ist, eine Legende basierend auf „Farbe nach Spalte“ oder einer Zeilenlegende zu erstellen, die nicht an einen bestimmten Plot angehängt wird, sondern in einem separaten Gliederungsfeld oder ähnlichem platziert werden könnte.
Der Grund, warum ich das versuche, ist, dass ich an einem JSL-Skript arbeite, das am Ende eine ganze Reihe von Daten aus einer Datenbank abrufen und eine Vielzahl von Visualisierungen für verschiedene Prozessschritte mit meist unterschiedlichen Legenden ausgeben soll. Darüber hinaus möchte ich es als interaktive HTML-Datei verteilen. Da es viele Diagramme und daher viel Scrollen geben wird, würde ich gerne eine Outline-Box/Scroll-Box-Anordnung erstellen, bei der die Legende und möglicherweise einige geschriebene Informationen beim Scrollen durch die Diagramme sichtbar bleiben (in einem separaten Teil des Fensters).
Was mir bisher gelungen ist, ist das Kopieren des Randfelds einer generierten Legende in die Zwischenablage über (Eine davon bezieht sich auf ein generisches Einwegdiagramm mit installierter „Zeilenlegende“).
rOne = One << report;
Link = rone[Owner Box(1)] << parent;
show (Link);
Link << copy picture
Dadurch wird die Legende Border Box in die Zwischenablage kopiert. Ich kann es beispielsweise in Word einfügen und bekomme genau das, was ich gesucht habe. Leider kann ich keinen JSL-Befehl finden, um Grafiken aus der Zwischenablage in eine Visualisierung einzufügen. Ich habe es über „Zwischenablage abrufen“ in einer Bildbox-Umgebung versucht, aber dieser Befehl scheint nur für Text zu funktionieren.
Weiß jemand, ob es möglich ist, Grafiken aus der Zwischenablage einzufügen?
Hat jemand alternativ ein Code-Sniplet, mit dem man eine eigenständige Legende erstellen kann (ich habe versucht, sie aus den Zeilenzuständen zu konvertieren, bin damit aber nicht weit gekommen)?
Jede Hilfe wird sehr geschätzt.
Grüße
Malte
MassenanpassungBetreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Hallo John,
Ich werde das tun, aber erst, nachdem ich versucht habe, sicherzustellen, dass es tatsächlich ein Thema über das Bildlauffeld in der interaktiven HTML-Umgebung und nicht vielmehr in meinem Code gibt (das war mein erster Versuch, Bildlauffelder zu verwenden, es könnte Raum für Verbesserungen geben
)
Grüße
MalteBetreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Malte,
Bitte senden Sie weitere Details zu den Problemen mit interaktivem HTML.
Wenn Sie mit der Community nichts teilen möchten, senden Sie mir bitte eine private Nachricht oder melden Sie die Probleme dem technischen Support.
Danke,
~John
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Danke für deinen Beitrag @MS .
Die Idee, die Legende direkt aus der Datentabelle zu erstellen, gefällt mir sehr gut. Das könnte sehr praktisch sein, obwohl am Ende des Skripts eine ganze Reihe von Legendenfenstern herumschweben werden ...Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Vielen Dank für diese schnelle und einfache Lösung @Melanie_J_Drake , obwohl ich mich für die anspruchsvollere Lösung von danschikore entschieden habe
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Vielen Dank, @danschikore . Deine Lösung ist großartig. Ich musste Ihren Code ein wenig verdrehen, um ihn in mein Visualisierungsschema zu integrieren, aber er funktioniert wirklich gut.
Ich habe immer noch Probleme mit der Anzeige des Bildlauffelds, aber das scheint eher ein Fehler in der interaktiven HTML-Visualisierung zu sein (verschwindende Daten zum Beispiel; in einem besonders interessanten Fall wurden die Diagramme nicht in der JMP-Umgebung angezeigt, aber beim Speichern als interaktives HTML wurden sie angezeigt (wenn auch etwas verzerrt).
Ihre Arbeit wird sehr geschätzt
Grüße
Malte
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Alle diese Antworten sind großartig!
Ich wollte nur den Vorschlag von gzmorgan0 zu vielen interaktiven HTML-Dateien ergänzen. Eine Möglichkeit, eine HTML-Benutzeroberfläche zu erstellen, um auf mehrere interaktive HTML-Dateien zu verweisen, besteht darin, im Hauptmenü von JMP „Datei“ > „Veröffentlichen“ zu verwenden. Es wird eine HTML-Benutzeroberfläche mit Miniaturansichten für Ihre interaktiven HTML-Berichte erstellt. Es kann in JSL mit New Web Report automatisiert werden. Hier ist ein Auszug aus dem Scripting Index:
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp", Invisible );
webreport =
New Web Report(
Add Report(
Distribution(
Continuous Distribution(
Column( :weight )
),
Nominal Distribution( Column( :age ) )
),
Title( "Distribution Web Report" ),
Description(
"This report was created with the sample found in the Scripting Index"
)
)
);
file = webreport << Save( "$TEMP" );
If( !Is Empty( file ),
Web( file )
);
Im Beispiel wird nur ein Bericht hinzugefügt, Sie können jedoch beliebig viele hinzufügen. Die Speicherung erfolgt auch an einem temporären Speicherort. Sie können diesen jedoch auch auf ein freigegebenes Netzlaufwerk festlegen und den Speicherort dann an Ihre Kollegen senden.
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?@danschikore , das war wirklich cool.
Dies ist eine weitere Möglichkeit, eine Datenfilter-Kontextbox zu verwenden. Ich denke, es ist etwas einfacher zu skripten und ermöglicht mehrere Filter für das interaktive HTML. Es gibt keine JMP-Legende, aber der Datenfilter ist leistungsstark.Nachfolgend finden Sie ein Beispiel.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
Current Data Table() << Data Filter( Local, Add Filter( columns( :sex ) ) ),
ScrollBox(
Platform(
Current Data Table(),
biv = Bivariate(
X( :height ),
Y( :weight ),
By( :age ),
)
)
)
)
)
);
_xxx = biv<< Xpath("//FrameBox");
_xxx << {MarkerSize(6)};
_xxx << RowLegend("sex", color(1), Marker(1)); //this will just be a reminder
nw << Save Interactive HTML("C:/temp/SharedLocalFilter.html");
@MJE Wenn Sie wirklich viele Berichte haben, sollten Sie statt eines Bildlaufs vielleicht die Erstellung einer eigenen HTML-Schnittstelle für interaktive HTML-Seiten/Dateien in Betracht ziehen, die von JMP erstellt wurden.Es gibt viele Beispiele für HTML-Suchoberflächen im Internet.
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Es gibt einige Stellen, an denen JMP Inhalte aus der Zwischenablage verwendet – normalerweise gepaart mit einer Möglichkeit zum Kopieren in die Zwischenablage axis< Und axis< .
Für Ihren Anwendungsfall würde ich empfehlen, die Kästchen zu kopieren oder zu verschieben, anstatt ein Bild zu erstellen.Um aus einer Zeilenlegende zu kopieren, können Sie etwa so vorgehen:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
framebox = rbiv[Frame Box( 1 )];
framebox << Row Legend( "age", color( 1 ), Marker( 1 ) );
subset = dt<<GET rows="" where=""> 58 & :weight < 95);
w = New Window("Custom Report",
H List Box(
Graph Box(FrameSize(300,300),MarkerSeg(:weight[subset], :height[subset],Row States(dt, subset))),
(biv<<REPORT></REPORT></GET>
Beim Export nach HTML wird die Legende weiterhin in ein Bild konvertiert, aber dadurch bleibt alles als JMP-Anzeigefelder in JMP erhalten.Sie werden jedoch feststellen, dass die geklonte Legende nicht wie die Originallegende anklickbar ist.Benutzen Entfernen von() Und Einfügen in() können Sie Boxen neu anordnen, ohne sie klonen zu müssen.Dadurch entsteht ein scrollbarer Bericht, der Ihrem Vorschlag ähnelt:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ), by( :age ) );
rbiv = biv[1] << report;
framebox = rbiv[Frame Box( 1 )];
framebox << Row Legend( "sex", color( 1 ), Marker( 1 ) );<BR />
// extract legend and report
legend = rbiv[OwnerBox(1)];
legendparent = legend<<PARENT></PARENT>// rearrange into a scrolled layout
toprpt << Append(hlist = HListBox(scrollbox=VScrollBox(800)));
InsertInto(scrollbox, fullrpt, 1);
InsertInto(hlist, legendbox, 2);
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Es ist möglich, über das Hauptmenü („Einfügen“) aus der Zwischenablage einzufügen, aber es ist nicht sehr nützlich (es ist schwierig, das Timing und das Ziel mit jsl zu steuern).
Ich bin mir nicht sicher, was Sie wollen, aber ich bin mir sicher, dass es bessere Alternativen gibt, als hier über die Zwischenablage zu blättern.
Hier ist ein Beispiel, das nützlich sein könnte:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/big class.jmp");
ow = Report(dt << Oneway(Y(:Height), X(:Age)));
rl = dt << Color By Column(:Age, Make Window With Legend);
nw = New Window("row legend",
H List Box(Scroll Box(Size(400, 600), V List Box(ow, ow, ow, ow)), rl)
);
// nw << Save Interactive HTML("path/example.html");
Betreff: So fügen Sie Grafiken aus der Zwischenablage über JSL ein; Alternativ: Wie erstelle ich eine eigenständige Legende?Ich bin mir nicht sicher, was Sie genau tun möchten, aber Get Picture könnte das sein, was Sie brauchen. Sie erhalten ein Bildobjekt, das Sie dann in einem JMP-Anzeigebaum platzieren können. Hier ist ein Beispiel aus dem Scripting Index:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
New Window( "Example", rbiv << Get Picture );
Ist es das, wonach Sie suchen? Dies wird nur ein statisches Bild sein, nicht interaktiv.
Betreff: Wie füge ich Grafiken aus der Zwischenablage über JSL ein? Alternativ: Wie erstelle ich eine eigenständige Legende?Ich möchte dem AddIn einen zweiten Modus hinzufügenhttps://marketplace.jmp.com/appdetails/Image+to+Tablevon@Jed_Campbell .
Das AddIn lädt das Bild von der Festplatte. In manchen Fällen kann es hilfreich sein, das Bild aus der Zwischenablage einzufügen.
Gibt es einen JSL-Befehl zum Einfügen von Grafiken aus der Zwischenablage?
Betreff: Wie füge ich Grafiken aus der Zwischenablage über JSL ein? Alternativ: Wie erstelle ich eine eigenständige Legende?
Gibt es einen JSL-Befehl zum Einfügen von Grafiken aus der Zwischenablage?
Ich glaube nicht, dass dies derzeit mit JSL möglich ist. Vielleicht ist dies ein guter Kandidat für die JMP-Wunschliste ?
Betreff: Wie füge ich Grafiken aus der Zwischenablage über JSL ein? Alternativ: Wie erstelle ich eine eigenständige Legende?ok, hier ist es: Grafiken aus der Zwischenablage einfügen