Utilizzo del generatore di grafici per creare grafici con dati Y raggruppati<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sono un ecologista tropicale specializzato nel baldacchino amazzonico. Sto scrivendo la mia tesi di dottorato e utilizzo JMP Pro (sono un utente abbastanza nuovo senza esperienza di programmazione) per eseguire PLS e altre analisi sui miei dati. Ho un ampio set di dati di foglie raggruppate per albero, livello della chioma delle foglie (sole o ombra) ed età delle foglie. Per una delle mie prime analisi ho 12 alberi con 4 alberi che hanno sia foglie da sole che da ombra e il resto solo foglie da sole. Ho bisogno di creare grafici per i diversi tratti delle foglie come il contenuto di acqua delle foglie, lo spessore delle foglie, il peso delle foglie fresche e secche, la % di contenuto di carbonio, ecc. ecc., questi grafici devono essere costruiti in modo tale che:
Asse X = età fogliare
Y = tratto fogliare (es. spessore fogliare) raggruppato per albero e per posizione soleggiata e ombreggiata della chioma
Ho provato a creare questi grafici, ma continuo a ottenere un grafico che divide la scala Y per ogni albero e quando provo a inserire il raggruppamento di sole e ombra nel grafico, tutto peggiora ulteriormente. Sarei molto grato se qualcuno potesse consigliarmi su come creare questi grafici raggruppati a Y e su come automatizzare al meglio la produzione di numerosi grafici. Mille grazie in anticipo per l'aiuto!;
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiGrazie mille per la tua pronta risposta. In effetti, alcune delle colonne numeriche erano entrate in modalità carattere. Ora l'ho corretto e i miei grafici hanno un senso e mostrano schemi sorprendenti, molte, molte grazie!!
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiSì, è un indizio utile. Sembra che la colonna RoC media sia arrivata come colonna di caratteri anziché come colonna di numeri e JMP la tratta solo come un elenco di nomi. Puoi risolverlo nella finestra di dialogo Informazioni colonna. Modificare il tipo di dati in Numerico e il tipo di modellazione in Continuo.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiMolte grazie MS e Xan per il tuo consiglio, esaminerò sia Illustrator che OmniGraffle più tardi quando avrò bisogno che i miei grafici abbiano un bell'aspetto per la pubblicazione. Attualmente, sto creando un carico di grafici per presentare le visualizzazioni iniziali dei miei dati ai miei supervisori.
Finora ho creato un primo gruppo di grafici a linee che rappresentano le diverse proprietà fisiche (spessore foglia, area, peso secco, ecc.) e chimiche (contenuto %C, %nN, ecc.) delle mie foglie man mano che invecchiano. L'evoluzione di uno di questi grafici per lo spessore delle foglie può essere vista nella storia di questi pali. Con il tuo aiuto, ho creato con successo grafici a linee che rappresentano i valori medi di gruppi di foglie di ciascuna età fogliare per posizione della chioma per albero. Sto ora cercando di creare un nuovo gruppo di grafici per rappresentare il tasso medio di cambiamento (avg RoC) per questi stessi fisici e chimici da un'età fogliare all'altra. Tuttavia, ho riscontrato problemi abbastanza presto. Ho calcolato il RoC medio (RoC medio=y2-y1/x2-x1) dai valori medi per le diverse proprietà foglia in Excel e quindi ho importato i dati in un nuovo datatable JMP. Tuttavia, quando ho provato a creare grafici a linee per il RoC medio, le cose hanno ricominciato ad andare male. Come puoi vedere dal grafico qui sotto, i valori negativi dell'asse Y sono stati per qualche motivo invertiti e nel caso mostrato di seguito il massimo RoC medio negativo con un valore di -23,155... (ho ricontrollato i miei dati e questo valore è corretto) è stato persino riorganizzato da qualche parte nel mezzo?! Ho provato a spuntare e deselezionare l'ordine Riga e quando ho aperto la finestra delle impostazioni dell'asse Y trovo questa riga prima dei valori minimi e massimi corretti:
Formato: 0 è -0,004850; 56 è 5,805832
Immagino che questo abbia qualcosa a che fare con questo, ma non capisco come funziona o come posso correggerlo. Ho anche esaminato lo script per questo grafico e non riesco a trovare alcun riferimento a questo. Potresti per favore aiutarmi con questo?

Molte grazie in anticipo per l'aiuto,
Cecilia
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiSu Mac, OmniGraffle è un'app di grafica vettoriale facile da usare. Per utilizzarlo sull'output JMP, utilizzare Stampa da JMP e scegliere Salva come PDF. OmniGraffle può aprire file PDF. Adobe Illustrator può gestire più formati ma è più difficile da usare e più costoso. Alcuni analisti chiamano questo tipo di pulizia grafica editing "post-produzione" e non è (ancora) una specialità di JMP.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiPer aggiungere una linea di riferimento, fai doppio clic sull'asse per visualizzare il pannello delle impostazioni dell'asse. Lì puoi specificare il valore, il colore e lo stile di una o più linee di riferimento.
Per il grafico nell'esempio di script sopra, una linea di riferimento grigia dell'asse y a 60 viene aggiunta da questo codice:
report(gb)[scalebox(2)]<<ADD ref="" line=""></ADD>
Con un programma di disegno vettoriale non intendevo software di grafica, ma software di disegno generale come Adobe Illustrator in cui è possibile modificare qualsiasi aspetto della grafica. Basta copiare da JMP e incollare in Illustrator. Non è difficile imparare le basi.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao MS,
Molte grazie per la tua risposta, proverò il tuo suggerimento di eliminare l'intera casella di gruppo più tardi poiché ho bisogno di andare avanti e inviare alcuni grafici ai miei supervisori, quindi sperimenterò altri più tardi. Tuttavia, potrei solo fare un'altra domanda su questi grafici, come posso aggiungere una linea grigia attraverso 0.
Sono interessato alla tua menzione di un "programma di disegno vettoriale", potrei chiederti che software usi per questo? Uso un MAC e dopo aver cercato su Google "programmi di disegno vettoriale per MAC" sono un po 'confuso su ciò che fanno questi programmi, non sembrano essere progettati per creare grafici, importi i tuoi grafici in questi programmi e aggiungi o cancelli cose come necessario? Non so se questa è la direzione in cui vorrei andare, questo tipo di programmi non è abbastanza difficile da imparare? Ho ricevuto consigli precedenti per imparare Sigmaplot (uso Paralleles sul mio Mac) o imparare la programmazione R, Matlab o Python, ma sono un po 'confuso con le opzioni. Attraverso la mia Università ho accesso a Sigmaplot e Matlab. Ho provato a provare SIgmaplot ma non sono andato molto lontano, non ho provato Matlab. Ho installato R sul mio computer ma sono bloccato con l'installazione di alcuni dei moduli Python. Sarei MOLTO grato per qualsiasi consiglio e/o suggerimento su tutto questo, poiché al momento sono sopraffatto dalle opzioni !!
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiL'intera casella di gruppo può essere eliminata, ma non conosco un modo per eliminare solo l'intestazione. Sembra essere di un tipo speciale (non documentato) di display box.
Di seguito è riportato un esempio su come sbarazzarsi della casella di gruppo. Mostra anche come possono essere aggiunte nuove etichette di gruppo.
dt = open("$sample_data\Big Class.jmp");
gb=graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Group X( :sex ) ),
);
Report( gb )[Graphbuildergroupbox( 1 )] << delete;
Report( gb )[framebox( 1 )]<<ADD text="" annotation=""></ADD>
Uso il generatore di grafici come un modo rapido per scoprire schemi e relazioni nei miei dati e tutte le opzioni avanzate consentono di cercare schemi piuttosto complessi. Tuttavia, una volta che mi sono accontentato di un grafico, lo porto quasi sempre in un programma di disegno vettoriale dove può essere modificato in dettaglio prima dell'uso in presentazioni o manoscritti.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao Xan,
Molte grazie ancora per la tua pronta risposta.
1. Ho provato il tuo suggerimento di utilizzare il messaggio Dimensione nel Gruppo X, ma questo ha solo spostato l'intestazione del Gruppo X allo stesso livello delle posizioni effettive del Canopy, come puoi vedere nel grafico qui sotto:

Ero già entrato in Preferenze e non c'è niente lì per formattare il Gruppo X se non per cambiare il bordo del Gruppo X nella parte inferiore del grafico.
Per quanto riguarda la spiegazione della necessità di rimuovere l'intestazione del gruppo X, è perché non ne ho bisogno. Dovrò comunque aggiungere una nota per spiegare cosa significano le etichette "SU" e "SH" nella legenda della figura, quindi un'intestazione non è necessaria. Ho anche provato a cancellare il nome della colonna, quindi non c'è intestazione ma a quanto pare una colonna senza nome non è consentita.
Ho notato nel bit di script che ho incluso di seguito che la variabile del gruppo X è dichiarata usando " " e questi penso siano usati per i nomi di testo/intestazione come nella variabile X. Non so perché anche il Gruppo X sia dichiarato in questo modo? In realtà, ho appena cambiato il nome del gruppo X in Posizione baldacchino e ora è dichiarato come variabile Y, quindi suppongo che i " " vengano utilizzati quando il nome di una variabile include simboli, giusto?
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :"SU-SHCanopyPos", Size(1), Levels( 2 ) ),
Overlay( :tree )
),
OK, finora nulla di ciò che ho provato ha funzionato e sono confuso sul motivo per cui non è possibile personalizzare le intestazioni del gruppo X e Y quando questo è fatto facilmente con tutte le altre intestazioni, sembra un errore di progettazione ?! Tu o qualcun altro avete altre idee su come sbarazzarsi dell'intestazione del gruppo X?
Grazie molto,
Cecilia
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppati1. Puoi spiegare meglio la necessità di rimuovere l'intestazione del gruppo X? Devi voler etichettare i pannelli in qualche modo. Se vuoi uno stile diverso, potresti essere in grado di indirizzarlo in Preferenze. Ho notato che puoi essenzialmente nascondere i nomi dei livelli usando il messaggio Dimensione nel Gruppo X:
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ), Group X( :sex, Size( 1 ) ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
1b. Apparentemente imparare JSL non è troppo difficile. Lo dico non perché lo uso da così tanto tempo da renderlo facile per me, ma perché quest'estate abbiamo avuto diversi studenti tirocinanti che hanno realizzato bei progetti in pochi giorni e progetti complessi in poche settimane. In ogni caso, l'indice di scripting nel menu Aiuto e il salvataggio in script che hai già scoperto sono le chiavi per aggiornarti rapidamente.
2. Fantastico.
3. Ho dimenticato come l'asse X nidificato collegherebbe la linea fino in fondo. Una brutta soluzione è unire Canopy con la tua variabile di sovrapposizione, ma poi ogni linea sarà di un colore diverso e dovrai cambiare manualmente alcuni dei colori in modo che corrispondano ai valori dell'albero.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao Xan,
Molte grazie per la tua pronta risposta.
Per quanto riguarda i tuoi commenti:
1. Sì, ieri sera sono giunto alla stessa conclusione e ho trascorso una mattinata e un pomeriggio frustranti cercando di riscrivere alcune parti dello script grafico per fargli fare quello che voglio. Tuttavia, poiché ho MOLTO POCA esperienza di programmazione, non sono andato molto lontano! Ho capito a cosa serve il 95% delle diverse sezioni di codice, ma non sono stato in grado di riscrivere nulla o aggiungere una riga di codice per eliminare le etichette del gruppo X. Di seguito ho incollato lo script per il mio ultimo grafico (scusate, non so come salvarlo in un file separato). Ho giocato a prendere la parte "Nome" della dichiarazione della variabile Gruppo X ma non ha funzionato. Ho anche provato ad aggiungere una riga Dispatch simile a quella che elimina il titolo del grafico, ma neanche questo ha funzionato. Potresti per favore aiutarmi con questo? Ho evitato di imparare a programmare perché ho molto lavoro da fare e impiegare circa un mese (essendo molto fiducioso!) Per imparare un linguaggio di programmazione sembra richiedere troppo, ma sto arrivando a un punto in cui penso sia inevitabile, quanto sarebbe difficile imparare alcuni script di base per poter modificare i grafici disponibili esistenti in Graph builder? Hai qualche consiglio in merito?
Graph Builder(
Size( 868, 525 ),
Show Footer( 0 ),
Lock Scales( 1 ),
Auto Stretching( 0 ),
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :Name( "SU/SHCanopyPos" ), Levels( 2 ) ),
Overlay( :tree )
),
Elements( Line( X, Y, Legend( 5 ), Row order( 0 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch(
{},
"Leaf Age Class (age in cummulative weeks)",
ScaleBox,
{Show Major Ticks( 0 ), Show Minor Ticks( 0 ), Rotated Labels( "Automatic" )}
),
Dispatch( {}, "thickness", ScaleBox, {Min( 0.12 ), Max( 0.46 ), Inc( 0.05 ), Minor Ticks( 1 )} ),
Dispatch( {}, "", ScaleBox, {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch( {}, "", ScaleBox( 2 ), {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
5,
Properties( 0, {Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 1, {Line Color( -16715009 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 2, {Line Color( 73 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 3, {Line Color( 24 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 4, {Line Color( -16739840 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 5, {Line Color( 36 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 6, {Line Color( 14 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 7, {Line Color( 0 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 8, {Line Color( 75 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 9, {Line Color( 1 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 10, {Line Color( 20 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 11, {Line Color( 42 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "Tree" )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Leaf Thickness (mm)" )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 2 ), Line Width Scale( 3 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 2 ), {Marker Size( 2 ), Line Width Scale( 3 )} )
)
);
2. Molte grazie per il suggerimento Unicode, ha fatto il suo lavoro.
3. Ho provato a nidificare Canopy e Leaf Age insieme e non mi è piaciuto il risultato in quanto unisce i grafici. Gli alberi che hanno sia foglie da sole che da ombra finiscono per avere una lunga linea continua con linee di sole e ombra unite, il che confonde le cose. Quindi, quello che ho fatto è stato mettere insieme le due diverse età in settimane per la classe di età delle foglie O/S1, come puoi vedere nel grafico qui sotto.

Molte grazie come sempre per il vostro aiuto.
Cecilia
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiBel lavoro, Cecilia, nel capire tutto questo dalle mie brevi descrizioni.
1. Non credo ci sia un modo per disattivare le etichette del Gruppo X nella visualizzazione live. Puoi fare clic con il pulsante destro del mouse e spostarlo in basso oppure puoi modificarne lo stile in Preferenze> Piattaforme> Costruttore di grafici. Oppure puoi inserire nel Journal il grafico, che crea una vista morta, e quindi rimuoverne parti utilizzando lo strumento di selezione "fat plus".
2. JMP non ha uno stile in apice, ma ci sono caratteri Unicode speciali per le cifre in apice e puoi usarli nel nome. Ecco un esempio se questo forum lo supporta: m².
3. L'asse X è identico all'interno dei livelli di raggruppamento (per consentire il confronto visivo tra i gruppi). Tuttavia, puoi nidificare Canopy e Leaf Age insieme sull'asse X. In tal caso, i sottolivelli mancanti verranno omessi, il che suona come quello che vuoi.
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao Xan,
Molte grazie per i tuoi consigli, sono stati azzeccati. Con il tuo aiuto e quello di Jeff sono quasi arrivato al grafico che desidero creare. Di seguito è riportato il grafico che ho creato finora:

Ho altre tre domande su questi grafici:
1. Come posso eliminare la legenda del gruppo X "SU/SHCanopyPos"? Ho provato a fare doppio clic e clic destro sulla legenda e a giocare con lo script (con le mie inesistenti capacità di programmazione!) e non sono riuscito a trovare un modo per sbarazzarmi di questa leggenda.
2. Come posso scrivere in apice parte del testo (unità ei come m2) nella legenda Y?
3. Penso che questa domanda sia un po' più complicata: come puoi vedere sui raggruppamenti X, dopo aver concatenato i dati "età in settimane" sulle classi di età foglia, sono finito con due classi di età O/S1 separate. Questo perché le foglie del sole di questa classe di età hanno una vita più breve (61 settimane) rispetto alle foglie dell'ombra (79 settimane). C'è un modo per ottenere solo una classe di età O/S1 per ogni posizione della vela ma con la corretta "età in settimane" per ognuna?
Infine, ho utilizzato il Column Switcher per creare grafici simili ma non mi è piaciuto molto, l'ho trovato un po' macchinoso. Quindi, ho provato l'opzione di scripting e l'ho trovata molto più semplice.
Molte grazie ancora per l'aiuto,
Cecilia
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao Cecilia,
Per ottenere tutti gli alberi su un grafico, puoi inserire Tree nello slot Overlay (assicurati che la colonna Tree sia contrassegnata come nominale poiché le variabili continue possono essere raggruppate altrimenti). Quindi la variabile Canopy dovrà trovarsi in uno degli slot del Gruppo X o del Gruppo Y.
Se vuoi davvero Tutto le linee in un grafico, è possibile creare una nuova variabile che concatena Tree e Canopy e quindi sovrapporre quella variabile. Per fare ciò, crea una nuova colonna di caratteri e assegnagli una Formula che concatena le altre due colonne. Qualcosa di simile a :Albero || " " || :Baldacchino . "||" è l'operazione di concatenazione del testo.
È possibile utilizzare un metodo simile per aggiungere i valori dell'età dell'albero: :Classe di età || "(" || Char(:età in settimane) || ")"
È possibile controllare l'ordine SU/SH aggiungendo una proprietà Value Order alla colonna Canopy nella finestra di dialogo Column Info.
Per creare molti grafici simili, è possibile utilizzare Column Switcher (sotto Triangolo rosso> script> Column Switcher) per farlo in modo interattivo o utilizzare lo scripting JSL per farlo a livello di codice (Triangolo rosso> script> Salva nella finestra di script, quindi modificare il nome Y).
xan
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao Jeff,
Mille grazie per la tua risposta e per aver dedicato del tempo a creare grafici di esempio e mi scuso per non aver fornito informazioni sufficienti nel mio post originale. I tuoi grafici in realtà illustrano molto bene i problemi che ho incontrato. Usando i tuoi grafici come esempio:
1. Grazie per il suggerimento sull'utilizzo del ruolo Sovrapposizione per la posizione del baldacchino delle foglie di sole e ombra, che risolve un problema. Ho usato il ruolo del gruppo Y a sinistra del grafico per i diversi alberi che mi dà un grafico simile al tuo ma disposto orizzontalmente anziché verticalmente. Ho aggiornato il mio grafico utilizzando il ruolo Overlay come mostrato di seguito:

Tuttavia, vorrei che quanto sopra:
1. essere un singolo grafico piuttosto che un grafico per ogni albero.
2. Vorrei aggiungere il numero equivalente di settimane che ciascuna classe di età fogliare rappresenta tra parentesi, ad esempio Y1(1), Y2(2), ecc. Ho questi dati in una colonna separata nella mia tabella di dati, come si concatenano due o più colonne in JMP Pro?
2. Ho anche ricreato il tuo secondo grafico (mi piace molto questo grafico in quanto sarebbe meno occupato del precedente) come segue:

Vorrei anche quanto sopra:
1. essere un solo grafo anziché un solo grafo per ogni albero
2. per invertire l'ordine della posizione della vela in modo che SU sia a sinistra e SH a destra. Ho invertito l'ordine degli assi X e Y ma non riesco a trovare questa opzione per i ruoli di raggruppamento X e Y.
Dopo aver organizzato i grafici per visualizzare correttamente le informazioni, vorrei trovare un modo per creare un sacco di grafici simili ma cambiando solo l'asse Y.
Spero che quanto sopra chiarisca le mie domande e vi ringrazio ancora per il vostro aiuto.
Cecilia
Ri: Usare il generatore di grafici per creare grafici con dati Y raggruppatiCiao CCHB,
Non sono sicuro di cosa stai cercando.
Ho preso in giro alcuni dati e li ho allegati qui in modo che tu possa vedere con cosa ho iniziato.
Ecco un grafico che ho creato utilizzando il ruolo X Group nella parte superiore del grafico. Questo ti dà un grafico per ogni albero.
Ho anche usato la colonna Sun o Shade nel ruolo Overlay per ottenere una riga per Sun e una per Shade per gli alberi che avevano entrambi.

In alternativa puoi utilizzare la colonna Sole o Ombra nel ruolo Gruppo Y sul lato destro del grafico e ottenere questo.

Se non ho indovinato correttamente, descrivi in modo più completo quale serie di grafici desideri e possiamo provare a mostrarti come crearli.
- Jeff