Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Vorrei creare un grafico di sovrapposizione con più serie di dati.Vedo come posso copiare lo script e incollarlo nel mio codice, ma cosa succede se non so in anticipo quante colonne avrò?Inoltre, cosa posso fare per utilizzare anche pennarelli diversi?
Ecco una copia della mia sceneggiatura.Questo è uno dei miei file più piccoli, quindi naturalmente non vorrei dover digitare tutte quelle righe!Grazie in anticipo.
Trama sovrapposta(
X( :Drain_Voltage ),
Y(
:Y_17,
:Y_18,
:Y_19,
:Y_20,
:Y_21,
:Y_22,
:Y_23,
:Y_24,
:Y_25,
:Y_26,
:Y_27,
:Y_28,
:Y_29,
:Y_30,
:Y_31,
:Y_32,
:Y_33,
:Y_34,
:Y_35,
:Y_36,
:Y_37,
:Y_38,
:Y_39
),
Overlay Axis << {{Min( 0.01 ), Max( 100 ), Inc( 1 ), Minor Ticks( 1 )}},
:Y_17( Indicatore di sovrapposizione( 8 ) ),
:Y_18( Indicatore di sovrapposizione( 1 ) ),
:Y_20( Indicatore di sovrapposizione( 2 ) ),
:Y_21( Indicatore sovrapposizione( 5 ) ),
:Y_22( Indicatore sovrapposizione( 6 ) ),
:Y_23( Indicatore sovrapposizione( 17 ) ),
:Y_24( Indicatore sovrapposizione( 7 ) ),
:Y_25( Indicatore sovrapposizione( 11 ) ),
:Y_26( Indicatore sovrapposizione( 3 ) ),
:Y_27( Indicatore sovrapposizione( 18 ) ),
:Y_28( Indicatore di sovrapposizione( 19 ) ),
:Y_29( Indicatore di sovrapposizione( 24 ) ),
:Y_30( Indicatore di sovrapposizione( 25 ) ),
:Y_31( Indicatore di sovrapposizione( 26 ) ),
:Y_32( Indicatore di sovrapposizione( 27 ) ),
:Y_33( Indicatore di sovrapposizione( 28 ) ),
:Y_34( Indicatore di sovrapposizione( 29 ) ),
:Y_35( Indicatore di sovrapposizione( 30 ) ),
:Y_36( Indicatore di sovrapposizione( 31 ) ),
:Y_37( Indicatore di sovrapposizione( 9 ) ),
:Y_38( Indicatore sovrapposizione( 10 ) ),
:Y_39( Indicatore sovrapposizione( 8 ) ),
Invia a rapporto(
Spedizione(
{},
"102",
ScaleBox,
{Min( 0.01 ), Max( 100 ), Inc( 1 ), Minor Tick( 1 )}
),
Dispatch( {}, "", AxisBox, {Add Axis Label( "Idleak (uA)" )} ),
Dispatch( {}, "Y", TextEditBox, {Imposta testo( "Idleak (uA)" )} ),
Dispatch( {}, "Overlay Plot Graph", FrameBox, {Frame Size( 740, 585 )} )
)
)
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Ricorda che 'Help > Scripting Index' è tuo amico qui.
L'esempio riportato è:
I nomi predefiniti sono qui ( 1 ) ;
ex = { 11 , 22 , 33 , 44 , 55 } ;
Rimuovere da ( ex , 3 , 2 ) ;
ex ;
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Ciao di nuovo,
Ho una domanda sulla sintassi.Come posso rimuovere più colonne da un elenco?
Ho provato questo Remove From(y_cols, 1::57), ma non funziona.
Grazie!
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Grazie, questo ha molto senso in realtà.mi piace il N Elementi funzione, anche.Penso che possa tornare utile di sicuro.
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Vedo. Se usi il modo rapido per ottenere un elenco di tutte le colonne numeriche come nel mio secondo esempio, la prima colonna deve essere rimossa.
Un'alternativa è creare l'elenco in un ciclo For e includere solo le colonne necessarie.
Per rimuovere il primo elemento da un elenco:
Rimuovere da ( y_cols , 1 ) ;
Se la colonna x è sempre la prima ma il suo nome può cambiare può essere utile mantenerla nella lista come nell'esempio qui sotto. Nota come utilizzo gli indici per specificare le colonne che vanno rispettivamente nei ruoli X e Y.
dt = Aprire ( "$DATI_ESEMPIO\Classe grande.jmp" ) ;
p.f = [ 8 , 26 , 2 , 5 , 6 , 17 , 7 , 11 , 3 , 18 , 19 , 24 , 25 ] ; //ordine preferito dei marcatori
colonne = dt << ottenere i nomi delle colonne ( corda , numerico ) ; // Elenco dei nomi delle colonne; x prima
N = N articoli ( colonne ) ;
// Crea grafico sovrapposto
operazione = dt << Trama sovrapposta ( X ( colonne [ 1 ]) , Y ( colonne [ 2 :: N ])) ;
// Imposta marcatori
Per ( io = 2 , io <= N , io ++,
Valutazione ( Analizza ( "op<<:" || colonne [ io ] || "(Indicatore di sovrapposizione(" || Car ( p.f [ io ]) || "))" ))
) ;
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?La mia prima colonna nella mia tabella contiene i miei valori x.Semplicemente non voglio includerlo come colonna y nel codice.
Grazie
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Cosa intendi? La colonna X? O la prima colonna della tabella?
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Oh un'altra cosa, cosa devo fare se non voglio includere la prima colonna?
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Grazie mille!Funziona bene.
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Dimenticato i marcatori. Vedere di seguito per un esempio in cui il comando Overlay Marker viene creato come stringa prima di essere analizzato e valutato. Può esistere un approccio più semplice.
dt = Aprire ( "$DATI_ESEMPIO\Classe grande.jmp" ) ;
p.f = [ 8 , 26 , 2 , 5 , 6 , 17 , 7 , 11 , 3 , 18 , 19 , 24 , 25 ] ; //ordine preferito dei marcatori
y_cols = dt << ottenere i nomi delle colonne ( corda , numerico ) ; // Elenco di y nomi di colonne
// Crea grafico sovrapposto
operazione = dt << Trama sovrapposta ( X ( : età ) , Y ( Valutazione ( y_cols ))) ;
// Imposta marcatori
Per ( io = 1 , io <= N articoli ( y_cols ) , io ++,
Valutazione ( Analizza ( "op<<:" || y_cols [ io ] || "(Indicatore di sovrapposizione(" || Car ( p.f [ io ]) || "))" ))
) ;
Re: Come posso utilizzare JSL per creare un "Overlay Plot" con serie di dati?Un elenco di colonne può essere utilizzato per impostare dinamicamente le colonne Y:
dt = Aprire ( "$DATI_ESEMPIO\Classe grande.jmp" ) ;
y_cols = { : altezza , : peso } ;
dt << Trama sovrapposta ( X ( : età ) , Y ( Valutazione ( y_cols ))) ;