Soluzione 2: valore dei colori
Per gli elementi grafici che di solito non corrispondono a singole righe, come grafici a barre e treemaps, i colori delle righe non sono di aiuto. Tuttavia, possiamo una proprietà Value Colors per colore colonna e utilizzarla nel ruolo Colore in Generatore di grafici, quei colori verranno utilizzati nel grafico. Per creare una proprietà della colonna Colori valore a livello di codice, creare innanzitutto una proprietà Valore colori di prova ed eseguire uno Script tabella copia nella tabella dati per vedere come JMP registra i colori dei valori come JSL. Vedrai qualcosa di simile a questo:
...
Set Property( "Value Colors",
{"#000000" = -5425372, "#003399" = -13577875, "#004899" = -4354269,
"#0063aa" = -13400361, "#006fba" = -2668175, "#0070bc" = -10628061,
...})
In ogni assegnazione, il lato sinistro è il valore dei dati e il lato destro è la rappresentazione del numero JSL di un valore del colore, uguale al risultato della funzione Colore RGB ().
Pertanto, il nostro compito è creare un'espressione di questo tipo a livello di codice utilizzando espressioni JSL e quindi inviarlo alla tabella dati per impostare la proprietà con il messaggio Aggiungi proprietà colonna ().
Ecco il mio codice:
eadd = Expr(
Column( "color" ) << Add Column Properties( Set Property( "Value Colors", LLL ) )
);
evc = {};
ec = Expr( SSS = CCC );
For Each Row(
ec2 = Substitute( Name Expr( ec ),
Expr( SSS ), :color,
Expr( CCC ),
RGB Color(
Hex To Number( Substr( :color, 2, 2 ) ),
Hex To Number( Substr( :color, 4, 2 ) ),
Hex To Number( Substr( :color, 6, 2 ) )
)
);
Insert Into( evc, Name Expr( ec2 ) );
);
Substitute Into( eadd, Expr( LLL ), Name Expr( evc ) );
eadd; // evaluates the expression
Per convenzione, sto anteponendo le variabili di espressione con "e" e usando lettere maiuscole per i pattern di sostituzione. L'idea di base è di creare un'espressione con il modulo di base usando i segnaposto e quindi utilizzare Sostituto per sostituire i segnaposto con valori calcolati. Ma qui, ci sono due livelli di sostituzione in corso. Uno per il comando, eadd , che ha il LLL segnaposto per l'elenco di colori valore e uno per ciascun compito, ec , che ha segnaposti SSS e CCC per la corda e il colore.