Problemi con il disegno di linee e frecce sui graficiSto provando alcuni esperimenti per capire come disegnare linee e frecce su un grafico in JSL. Non ho trovato molto di utile nella Guida allo scripting e non ho visto nulla di precedentemente pubblicato nella community. Ho caricato il mio script JSL e la tabella dati qui sotto.
Nella tabella dei dati ho calcolato le coordinate di un cerchio unitario a intervalli di 5 gradi. Le ho tracciate con Graph Builder...

Inizialmente, quello che vorrei fare è scrivere una freccia dall'origine a ciascun punto. Ecco lo script che sto usando. Non ottengo errori quando lo eseguo, ma non disegna mai le frecce. Ho provato a inserire il ciclo FOR all'interno del blocco Graph Builder, come mostrato qui, e anche all'esterno del blocco. Non riesco a far funzionare nessuno dei due.
Names Default To Here (1);
dt = "Circle Arrow Data";
Graph Builder(
Size( 540, 540 ),
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :x coord ), Y( :y coord ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
For( i=0, i<360, i+=5,
Arrow( {0,:x coord[i]}, {0, :y coord[i]})
)
);
In definitiva, il mio obiettivo è che le frecce appaiano solo quando si seleziona una o più righe, ma ovviamente devo prima far funzionare questo sistema. In realtà si tratta di mostrare la direzione del vento su un grafico, ma sto facendo piccoli passi per capire come disegnare sui grafici.
Grazie in anticipo per qualsiasi consiglio fornito.
Automazione e scriptingRe: Problemi con il disegno di linee e frecce sui graficitempismo perfetto : )
novità di JMP19:
I grafici vettoriali possono aiutare a spiegare le prestazioni nell'ultimo Super Bowl?

New Column( "x_0", Formula( 0 ));
New Column( "y_0", Formula( 0 ));
Graph Builder(
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) ),
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
Ordering( "Within Row" ),
Connection( "Arrow" )
)
)
);
Re: Problemi con il disegno di linee e frecce sui graficiCiao @hogi, grazie per lo script. Funziona benissimo.
Sto cercando di capirlo... quindi un paio di domande.
1) A cosa serve il parametro Posizione?
2) Da dove provengono 1 e 2 negli argomenti X e Y?
3) Cosa fa l'ordinamento ("All'interno della riga")?
Sembra che la documentazione su queste funzioni sia molto incompleta nella guida e nell'indice degli script.
Grazie ancora.
Re: Problemi con il disegno di linee e frecce sui graficiSono d'accordo, l'indice di scripting non è buono come quello di altri programmi come Mathematica o Matlab, o l'enorme documentazione online per Python e C++. Ci sono alcune attività per migliorare la situazione: Indice di scripting completo
D'altra parte, ci sono molte cose che puoi imparare facendo . Apri Graph Builder e crea il tuo grafico usando la funzione drag-and-drop. Ci vogliono solo pochi secondi, e l'ottimizzazione del grafico richiede altri secondi. Quindi, clicca su "Salva script nella tabella dati" e confronta ciò che hai fatto con ciò che trovi nel codice.
- L'ordine delle righe è una nuova funzionalità di JMP19. Può essere utilizzato quando si utilizzano insiemi di coordinate per X e Y.
ed è la nuova opzione predefinita per questo caso
[nota: il grafico non cambia quando attivo l'opzione]
- let's drag the coordinates into the plot, first x_0 and y_0
Variables( X( :x_0 ), Y( :y_0 ) ),
- then x_coord / y_coord
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) )
- now, we just have to activate the line plot. By default, it uses all available coordinated:
X(1) is x_0
X(2) is x_coord
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
)
)
we can also deactivate variables via:
Quindi il codice si ridurrà a:
Elements(
Line( X( 1 ), Y( 1 ),
Grafici con linee e frecce che collegano più coordinate: un grande miglioramento in JMP19.
Grafici con linee e frecce che collegano più coordinate. Un grande miglioramento in JMP19!
Immagina di voler tracciare tre serie di coordinate (punti) all'interno dello stesso grafico, invece delle frecce. Poi devi aggiungere tre grafici di punti al grafico e disattivare le "altre" coordinate tre volte. Funziona, ma è un po' complicato!

Immagina di voler tracciare dieci serie di coordinate!
Un passo logico successivo sarebbe quello di copiare la nuova funzionalità "all'interno della riga" nei grafici a punti.
Più set di dati x e y tracciati come "coppie" senza dover impilare le colonne
Spero davvero che questa funzionalità venga implementata presto!
Re: Problemi con il disegno di linee e frecce sui graficiQuindi gli argomenti 1 e 2 nelle funzioni X e Y sono semplicemente nell'ordine in cui sono elencati nella funzione variabili? Ho capito bene?
Quindi cosa fa Position(1) nella funzione Variables? Sembrerebbe che questo renderebbe la coordinata :x e la coordinata y: 1, non x_0 y_0.
Mi dispiace, ma la situazione mi confonde un po'.
Re: Problemi con il disegno di linee e frecce sui graficiAhhh... Quindi ho preso la posizione(1) e ho eseguito lo script. Ecco cosa ho ottenuto...

Quindi, il modo in cui vengono aggiunte le variabili darebbe luogo a quattro grafici separati. Il comando Posizione seleziona quale grafico visualizzare.
Penso che sia giusto...
Ci giocherò ancora un po'. Potrebbe diventare un ottimo video tutorial, prima o poi.
Grazie per tutto il tuo aiuto in questo
Re: Problemi con il disegno di linee e frecce sui grafici: )
Come promesso, è davvero facile imparare dagli script "facendo"!
Oltre a ciò, ci sono buone probabilità che in questo modo l'apprendimento rimanga impresso molto meglio.:)
Re: Problemi con il disegno di linee e frecce sui graficiSì, sono d'accordo. Ma a volte è ancora difficile capire cosa sta succedendo.
Ad esempio, ho sostituito Position(1) con Position(2) pensando che avrebbe mostrato un quadrante diverso del grafico. Ma... non ha fatto nulla. Quindi l'1 in Position(1) è probabilmente un valore booleano.
Non riesco a trovare nulla a riguardo né online, né nell'indice degli script o nella guida in linea. Forse sto cercando nel posto sbagliato.
In ogni caso, grazie ancora.
Re: Problemi con il disegno di linee e frecce sui graficiInvece di provare a scrivere il codice e verificare come funziona...
Prova l'approccio inverso:
Dopo aver creato un grafico complesso in Graph Builder, esamina il codice e trai le seguenti conclusioni:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :name ),
Y( :weight ),
Y( :height, Position( 2 ) ),
Y( :age ),
Overlay( :sex )
),
Elements( Position( 1, 1 ), Points( X, Y ) ),
Elements(
Position( 1, 2 ),
Points( X, Y( 1 ), Y( 2 ), Legend( 1 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Legend( 2 ) )
),
Elements( Position( 1, 3 ), Points( X, Y ) )
);
se ci sono solo 2 elementi, non c'è differenza tra aggiungere una seconda voce e aggiungere una seconda voce come seconda .
Position(2) ha senso per tre o più elementi. Per impostazione predefinita, il terzo elemento viene aggiunto come terzo. Se si desidera fare qualcos'altro, è possibile aggiungerlo in position(2).