Livello dell'ordine basato sugli ultimi 3 caratteri di valoreCiao -
Vorrei che l'ordine dei valori sull'asse x nella trama fosse in ordine crescente. Il problema è che questi valori sono stringhe alfanumeriche e solo gli ultimi 3 caratteri sono quelli che indicano l'ordine.
Ad esempio, mi piacerebbe vederli nel seguente ordine da sinistra a destra su un grafico.
1: YRFCA1
2: YRTCB1
3: YRACB2
4: YRTCC0
I livelli di ordine Riga e Valore hanno disposto i dati in modo diverso.
Potrei fare una sottostringa di valori sopra e concentrarmi solo sugli ultimi 3 caratteri prima di ordinarli, ma non sono sicuro di come visualizzare l'intera stringa di 6 caratteri nella trama.
Apprezzo l'input su come potrei implementarlo in JSL.
Grazie!
ScriptingRe: Livello dell'ordine basato sugli ultimi 3 caratteri di valorePuoi anche "forzare" JMP a utilizzare l'ordinamento di colonne non numeriche tramite JSL, ma questo potrebbe essere un bug e non una funzionalità, quindi potrebbe essere un po 'rischioso da usare:
Names Default To Here(1);
dt = New Table("table",
Add Rows(5),
New Column("Col", Character, "Nominal", Set Values({"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"})),
New Column("order", Character, "Nominal", Formula(Right(:Col, 3)))
);
dt = Graph Builder(Variables(X(:Col, Order By(:order, Ascending))), Elements(Points(X, Legend(34))));
Puoi farlo anche direttamente da Graph builder utilizzando due righe di etichette dell'asse x:

Quindi, se lo desideri, puoi aprire le impostazioni dell'asse x e quindi apportare alcune modifiche alle impostazioni di altre etichette per nasconderle (in questo caso ordine):

e finisci con:

Quindi puoi cambiare l'asse x per rimuovere l'ordine /.
Re: Livello dell'ordine basato sugli ultimi 3 caratteri di valoreEntrambi i modi sono molto utili. Grazie Craige e ZF!
Re: Livello dell'ordine basato sugli ultimi 3 caratteri di valoreCarino!
Re: Livello dell'ordine basato sugli ultimi 3 caratteri di valoreOrdino la tabella in base agli ultimi 3 caratteri (prendo prima la sottostringa degli ultimi 3 caratteri), quindi imposto la proprietà della colonna di testo lungo "value ordering" .
Names default to here(1);
dt=New Table( "order by another col",
Add Rows( 4 ),
New Column( "Label",
Character,
"Nominal",
Set Values( {"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"} )
),
New Column( "Last 3",
Character,
"Nominal",
Formula( Right( :Label, 3 ) ),
),
);
dt << sort(replace table(1), by(:Last 3));
values=dt:Label << get values;
dt:Label << set property ("Value Ordering", values);
Re: Livello dell'ordine basato sugli ultimi 3 caratteri di valoreForse qualcosa del genere. Ho creato la colonna di trasformazione nella GUI, quindi l'ho salvata. Fai clic con il pulsante destro del mouse sulla variabile da trasformare (nel selettore di colonna), scegli trasforma->formula. Quindi trascina/rilascia la nuova variabile di trasformazione nel generatore di grafici.
Graph Builder(
Size( 893, 823 ),
Show Control Panel( 0 ),
Variables(
X( :name ),
Y(
Transform Column(
"Transform[name]",
Character,
Nominal,
Formula(
Right( :name, 3 ) || "_" || Left( :name, Length( :name ) - 3 )
)
)
)
),
Elements( Points( X, Y, Legend( 8 ) ) )
);
Last three letters moved to front of nameLast three letters moved to front of nameLe ultime tre lettere sono state spostate davanti al nome