Come imposto lo stile della linea in JSL?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Vorrei impostare lo stile della linea per un grafico a linee basato su una funzione della colonna che utilizzo per sovrapporre. Ad esempio, se ho dati in cui la colonna che utilizzo per sovrapporre ha valori "Revenue_Jan", "Profit_Jan", "Revenue_Feb", "Profit_Feb", voglio che qualsiasi grafico "Entrate" sia tratteggiato e qualsiasi grafico "Profitto" essere tratteggiato.
Posso impostare lo stile della linea in questo modo usando JSL?
Ri: Come posso impostare lo stile della linea in JSL?Ho anche notato che il numero non ha importanza, almeno non nell'esempio attuale. Non sono sicuro a cosa si riferisca Legend Model. Graph Builder è abbastanza diverso dalle altre piattaforme quando si tratta di scripting.
Ri: Come posso impostare lo stile della linea in JSL?Fantastico, grazie!
Una cosa che ancora non capisco: per me, il tuo script funziona solo quando cambio "{Legend Model(4..." in "{Legend Model{1..."). Sapete a cosa si riferisce questo "Modello Leggendario"? Non riesco a trovare documentazione in merito da nessuna parte.
Ri: Come posso impostare lo stile della linea in JSL?Ecco un'espansione dell'esempio di Jim che applica in modo condizionale lo stile della linea ai livelli di sovrapposizione eseguendo il looping su un elenco di livelli.
In Graph Builder, ogni livello di sovrapposizione sembra essere indirizzato da un numero che inizia da 0. L'ordine è diverso da quello predefinito se la colonna Overlay ha una proprietà Value Ordering. Pertanto, l'ordinamento dei livelli deve essere considerato durante la creazione dell'elenco.
I nomi predefiniti sono qui ( 1 ) ;
// Tabella dati di esempio
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
dt << Nuova Colonna ( "gruppo" ,
Carattere ,
Formula (
Se (
: sesso == "F" & : altezza < Col Media ( : altezza , : sesso ) , "Fa corto" ,
: sesso == "F" & : altezza >= Col Media ( : altezza , : sesso ) , "F alto" ,
: sesso == "M" & : altezza < Col Media ( : altezza , : sesso ) , "M corto" ,
"M alto"
)
)
) ;
// Costruttore di grafici con Overlay
OverlayCol = Colonna ( dt , "gruppo" ) ;
GB = Costruttore di grafici (
Misurare ( 528 , 447 ) ,
Mostra pannello di controllo ( 0 ) ,
Variabili ( X ( : età ) , Y ( Come Colonna ( YCol )) , sovrapposizione ( gruppo )) ,
Elementi ( Linea ( X , Y )) ,
) ;
// Applica lo stile della linea ai valori di sovrapposizione che soddisfano i criteri
lstyle = "Punteggiato" ;
criteri = "M " ;
Riassumere ( G = di ( OverlayCol )) ; // Elenco dei livelli di sovrapposizione (ordine alfabetico)
// Rimuovere il commento sotto la riga se la proprietà Value Ordering è impostata per la colonna Overlay
// g=OverlayCol<
Per ( io = 1 , io <= N articoli ( G ) , io ++,
Se ( Contiene ( G [ io ] , criteri ) ,
GB << SendToReport (
Spedizione ({} , "400" , ScaleBox ,
{ Modello Leggenda ( 4 , Proprietà ( io - 1 , { Stile linea ( lstyle )}))}
)
)
)
) ;
Ri: Come posso impostare lo stile della linea in JSL?
Ciao Jim, grazie per la risposta. Il mio problema è che, nel tuo esempio, stai dicendo esplicitamente allo script di quale grafico cambiare lo stile della linea, nel file Proprietà ( 0 , { Stile linea ( "Punteggiato" )} comando. Nel caso che mi interessa, non saprò in anticipo quanti grafici ci sono: potrebbero essercene 3, potrebbero essercene 30 e voglio cambiare lo stile della linea di ciascuno in base al valore di sovrapposizione.
Esiste un modo più generale per eseguire quel comando, che seleziona un gruppo invece di scegliere un grafico specifico da modificare? Oppure, ad esempio, potrei in qualche modo trovare l'indice dei grafici che mi interessano ed eseguire un ciclo che cambia lo stile della linea di ciascuno?
Ad esempio, se ho tre grafici, "Revenue_Jan", "Profit_Jan" e "Revenue_Feb" (e non so in anticipo quanti grafici "Revenue" ci saranno) c'è un buon modo per scoprirlo? che il grafico 0 e il grafico 2 iniziano entrambi con "Entrate" ed eseguono un ciclo che cambia lo stile di entrambi? O c'è un altro modo per fare questo tipo di funzione?
Ri: Come posso impostare lo stile della linea in JSL?Lo stile della linea può essere facilmente impostato in JSL.Di seguito è riportato un semplice script che mostra un modo per modificare lo stile della linea.
I nomi predefiniti sono qui ( 1 ) ;
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
YCol = "altezza" ;
// Il valore di lstyle può essere impostato in base a
// la colonna utilizzata per la colonna Y
// (ovvero If(YCol == "Profitto", lstyle="Punteggiato", lstyle="Solido"))
lstyle = "Punteggiato" ;
Costruttore di grafici (
Misurare ( 528 , 447 ) ,
Mostra pannello di controllo ( 0 ) ,
Variabili ( X ( : età ) , Y ( Come Colonna ( YCol ) ) ) ,
Elementi ( Linea ( X , Y , Leggenda ( 4 ) ) ) ,
SendToReport (
Spedizione ( {} , "400" , ScaleBox ,
{ Modello Leggenda ( 4 , Proprietà ( 0 , { Stile linea ( lstyle )} ) )} )
)
) ;
