Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Ciao a tutti,
Ho raggiunto i limiti delle mie (piuttosto limitate) capacità di scripting e sto cercando aiuto.
Quello che sto attualmente cercando di fare è creare una legenda basata su "Colore per colonna" o legenda riga, che non viene aggiunta a una determinata trama ma potrebbe essere inserita in una casella di contorno separata o simile.
Il motivo per cui sto cercando di farlo è che sto lavorando su uno script JSL che alla fine recupererà un intero gruppo di dati da un database e fornirà una moltitudine di visualizzazioni per diverse fasi del processo con legende per lo più diverse. Inoltre, voglio distribuirlo come file html interattivo. Poiché ci saranno molti grafici e quindi molto scorrimento, mi piacerebbe generare un allineamento Outline Box / Scroll Box, dove la legenda e forse alcune informazioni scritte dovrebbero rimanere visibili (in una parte separata della finestra) durante lo scorrimento attraverso i grafici.
Quello che sono riuscito a fare finora è copiare il Border Box di una legenda generata negli appunti tramite (uno si riferisce a un grafico unidirezionale generico con una "legenda di riga" installata)
rOne = One << report;
Link = rone[Owner Box(1)] << parent;
show (Link);
Link << copy picture
che copia la legenda Border Box negli appunti. Posso incollarlo in una parola, ad esempio, e ottenere esattamente quello che stavo cercando. Sfortunatamente, non riesco a trovare un comando JSL per incollare la grafica dagli appunti in una visualizzazione. L'ho provato tramite "Ottieni appunti" in un ambiente Picture Box, ma questo comando sembra funzionare solo per il testo.
Qualcuno sa se è possibile incollare la grafica dagli appunti?
In alternativa, qualcuno ha uno sniplet di codice che consente di creare una legenda autonoma (ho provato a convertirlo dagli stati della riga ma non sono andato molto lontano con quello)?
Qualsiasi aiuto è molto apprezzato.
Saluti
Malte
GraficaRi: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Ciao John,
Lo farò, ma solo dopo aver provato ad assicurarmi che ci sia effettivamente un argomento sulla casella di scorrimento all'interno dell'ambiente html interattivo e non piuttosto all'interno del mio codice (questo è stato il mio primo tentativo di utilizzare le caselle di scorrimento, potrebbe esserci spazio per miglioramento
)
Saluti
MalteRi: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Malta,
Si prega di inviare maggiori dettagli sui problemi relativi all'HTML interattivo.
Se non ti senti a tuo agio a condividere con la community, inviami un messaggio privato o segnala i problemi al supporto tecnico.
Grazie,
~Giovanni
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Grazie per il tuo contributo @SM .
Mi piace molto l'idea di creare la legenda direttamente dalla tabella dei dati. Potrebbe tornare molto utile, anche se alla fine della sceneggiatura ci saranno un sacco di finestre di legenda fluttuanti...Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Grazie mille per questa soluzione semplice e veloce @Melanie_J_Drake , anche se ho deciso per la soluzione più ambiziosa di danschikore
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Grazie mille, @danschikore . La tua soluzione è ottima. Ho dovuto stravolgere un po' il tuo codice per adattarlo al mio schema di visualizzazione, ma funziona davvero bene.
Ho ancora qualche problema con la visualizzazione della casella di scorrimento, ma sembra piuttosto che si tratti di alcuni bug all'interno della visualizzazione html interattiva (dati che scompaiono ad esempio; in un caso particolarmente interessante i grafici non sono stati visualizzati nell'ambiente JMP, ma lo sono stati (sebbene in qualche modo distorto) quando viene salvato come html interattivo).
Il tuo lavoro è molto apprezzato
Saluti
Malte
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Tutte queste risposte sono fantastiche!
Volevo solo aggiungere al suggerimento di gzmorgan0 su molti file HTML interattivi. Un modo per creare un'interfaccia utente HTML per fare riferimento a diversi file HTML interattivi consiste nell'utilizzare File > Pubblica dal menu principale di JMP. Creerà un'interfaccia utente HTML con miniature per i tuoi rapporti HTML interattivi. Può essere automatizzato in JSL utilizzando New Web Report. Ecco un estratto dallo 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 )
);
L'esempio aggiunge un solo rapporto, ma puoi aggiungerne quanti ne vuoi. Salva anche in una posizione temporanea, ma puoi impostarla su un'unità di rete condivisa, quindi inviare la posizione ai tuoi colleghi.
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?@danschikore , è stato davvero fantastico.
Questa è un'altra opzione, per utilizzare una casella di contesto del filtro dati. Penso che sia un po 'più facile creare script e consenta più filtri per l'HTML interattivo. Non ha la legenda JMP, ma il filtro dati è potente.Di seguito viene fornito un esempio.
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 se hai davvero molti report, invece di uno scroll, potresti prendere in considerazione la possibilità di creare la tua interfaccia HTML per pagine/file HTML interattivi creati da JMP.Esistono molti esempi di interfacce utente di ricerca html su Internet.
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Esistono alcuni punti in cui JMP utilizza il contenuto degli appunti, di solito abbinato a un modo per copiare negli appunti come axis< E axis< .
Per il tuo caso d'uso, consiglierei di copiare o spostare le caselle piuttosto che creare un'immagine.Per copiare da una riga legenda potresti fare qualcosa del genere:
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>
La legenda verrà comunque convertita in un'immagine quando esportata in HTML, ma questo mantiene tutto come caselle di visualizzazione JMP all'interno di JMP.Tuttavia, noterai che la legenda clonata non è cliccabile come la legenda originale.Usando Rimuovere da() E Inserire() , puoi riorganizzare le caselle senza doverle clonare.Questo rende un rapporto scorrevole simile a quello che suggerisci:
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);
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?È possibile incollare dagli appunti utilizzando il menu principale ("Incolla") ma non è molto utile (difficile controllare i tempi e il target con jsl).
Non sono sicuro di quello che vuoi, ma sono sicuro che ci sono alternative migliori rispetto a passare attraverso gli appunti qui.
Ecco un esempio che può essere utile:
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");
Ri: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda a sé stante?Non sono sicuro di cosa stai cercando di fare esattamente, ma Get Picture potrebbe essere ciò di cui hai bisogno. Fornisce un oggetto immagine che è possibile posizionare in un albero di visualizzazione di JMP. Ecco un esempio dallo 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 );
È quello che stai cercando? Questa sarà solo un'immagine statica, non interattiva.
Re: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda autonoma?Voglio aggiungere una seconda modalità all'AddInhttps://marketplace.jmp.com/appdetails/Image+to+Tabledi@Jed_Campbell .
L'AddIn carica l'immagine dal disco rigido. In alcuni casi può essere utile incollare l'immagine dagli appunti.
Esiste un comando JSL per incollare la grafica dagli appunti?
Re: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda autonoma?
Esiste un comando JSL per incollare la grafica dagli appunti?
Non credo che al momento ci sia un modo per farlo con JSL. Forse è un buon candidato per la lista dei desideri di JMP ?
Re: Come incollare la grafica dagli appunti tramite JSL; in alternativa: come creare una legenda autonoma?ok, eccolo qui: incolla la grafica dagli appunti