Lösung 2: Wertfarben
Für Diagrammelemente, die normalerweise nicht einzelnen Zeilen entsprechen, wie Balkendiagrammen und Baumkarten, helfen die Zeilenfarben nicht. Wir können jedoch eine Value Colors-Eigenschaft zum Farbe Wenn Sie diese Spalte in der Farbrolle im Graph Builder verwenden, werden diese Farben im Diagramm verwendet. Um eine Eigenschaft der Spalte Wertefarben programmgesteuert zu erstellen, erstellen Sie zunächst eine Testwert-Eigenschaft und führen Sie ein Copy Table-Skript für die Datentabelle aus, um zu sehen, wie JMP die Wertefarben als JSL aufzeichnet. Sie werden so etwas sehen:
...
Set Property( "Value Colors",
{"#000000" = -5425372, "#003399" = -13577875, "#004899" = -4354269,
"#0063aa" = -13400361, "#006fba" = -2668175, "#0070bc" = -10628061,
...})
In jeder Zuweisung ist die linke Seite der Datenwert und die rechte Seite ist die JSL-Zahlendarstellung eines Farbwerts, genau wie das Ergebnis der Funktion RGB Color ().
Unsere Aufgabe besteht also darin, einen solchen Ausdruck programmgesteuert mithilfe von JSL-Ausdrücken zu erstellen und ihn dann an die Datentabelle zu senden, um die Eigenschaft mit der Meldung zum Hinzufügen von Spalteneigenschaften () festzulegen.
Hier ist mein Code:
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
Konventionell füge ich den Ausdrucksvariablen "e" voran und verwende für die Substitutionsmuster Großbuchstaben. Die Grundidee besteht darin, mithilfe von Platzhaltern einen Ausdruck mit dem Basisformular zu erstellen und anschließend Platzhalter durch Ersetzen durch berechnete Werte zu ersetzen. Aber hier gibt es zwei Ebenen der Substitution. Eine für den Befehl, eadd , das hat die LLL Platzhalter für die Liste der Wertfarben und für jede Zuordnung einen, ec , die Platzhalter hat SSS und CCC für die Schnur und die Farbe.