<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe festgestellt, dass die Verwendung der Funktion dt << set row states (Einzelspaltenmatrix) viel schneller ist als die Verwendung der traditionellen ForEachRow (Rowstate () = Colorstate (LevelColor (Row (), n_groups, "JMP Light"))). und so möchte ich es verwenden. Dazu muss der Scripter die Einspaltenmatrix (hier "rscode") direkt erstellen. Gemäß dem JMP-Skripthandbuch bestimmt die Matrix die Zeilenstatus auf folgende Weise:
rscode
=
ausgewählt (r) +
2 * ausgeschlossen (r) +
4 * hidden (r) +
8 * markiert mit (r) +
16 * Marker von (r) +
256 * Farbe von (r);
Ich habe Erin Vangs Blogbeitrag von 2010 über das Setzen der Markerwerte gelesen (sie hat diskutiert, wie Unicode-Zeichen als Marker eingefügt werden), aber ich habe noch keine entsprechende Diskussion über Farben gefunden. Mein Problem ist, dass die Funktion "Farbe von" Zahlen zurückgibt, die keine gültigen Farbzustände sind, sondern eher negative Zahlen. Im Idealfall möchte ich die integrierten Farbthemen wie "Spectral" und "JMP Default" verwenden, anstatt eines selbst erstellen zu müssen. Daher möchte ich in der Lage sein, mit ColorOf (ColorState () Werte in der Zeilenstatusmatrix festzulegen.
Wenn Sie nun die Farbzustände in einer Dummy-Tabelle festlegen und den Befehl (dt << Get Row States) / 256 verwenden, erhält man einen Vektor von Farbindizes, dies sind jedoch keine Ganzzahlen. Eine meiner Fragen lautet: Wie werden die nicht integralen Teile berechnet?
Erstellen Sie beispielsweise eine Dummy-Tabelle, legen Sie deren Farbzustände fest und sehen Sie dann die Inkonsistenz zwischen den Einträgen des Ausgabevektors (der Indizes aus der JMP-Farbtabelle 0-84 enthält) und der Funktion ColorOf (...), die negative Zahlen (viele) ergibt davon sind groß. Gibt es ein Muster dazu oder fehlen mir Funktionen? Beachten Sie, dass bla! = Blah2 und die resultierenden Tabellenfarben sehr unterschiedlich sind.
dt = Neue Tabelle ("Test")
Zeilen hinzufügen (100),
Neue Spalte ("col1",
Numerisch,
Kontinuierlich,
Format ("Best", 10),
Formel (Zeile ())
)
);
Für jede Reihe(
RowState () =
ColorState (HeatColor (Row () / NRows (dt), << "Jet"))
);
blah = (dt << GetRowStates) / 256;
blah2 = J (NRows (dt), 1,0);
ForEachRow (Show (blah2 [Row ()) = COlorOf (RowState ())));
dt << SetRowStates (blah2 * 256)
/ *
blah =
[53.0000000318978, 53.0000000342261, 53.0000000367872, 53.0000000391155
53.0000000414439, 53.0000000437722, 53.0000000463333, 53.0000000486616,
53.0000000509899, 21.0000000533182, 21.0000000558794, 21.0000000582077,
21.000000357395, 21.0000009534415, 21.0000015494879, 21.000002205139,
21.0000028011855, 21.0000033972319, 21.0000039932784, 21.0000045893248,
21.0000051853713, 5.00000584102236, 5.00000643706881, 5.00000703311525,
5.0000076291617, 13.0000082252081, 13.0000088212546, 45.0000094769057
45.0000100729521, 45.0000106689986, 45.000011265045, 45.0000119206961
45.0000125167426, 45.000013112789, 42.0000137088355, 42.0000143644866,
42.000014960533, 42.0000915501732, 42.0002441336401, 71.0003967175726,
71.0005645607598, 71.0007171453908, 71.0008697302546, 71.001022315817,
68.0011749016121, 68.0013274876401, 68.0014953331556, 68.0016479198821,
68.0018005073071, 68.0019530949649, 68.0019683514256, 68.0019988666754,
68.0020751582924, 68.0021514496766, 76.0022735176608, 76.0024108444341,
76.0025634299964, 76.0027617919259, 76.0029754126445, 76.0032042919193,
41.003463689005, 41.0037536036689, 41.0039058923721, 41.0039052963257,
41.0039046406746, 41.0039040446281, 9.0039034485817, 9.00390285253525
9.00390219688416, 9.00390160083771, 9.00390100479126, 6.00390040874481,
6.00389975309372, 6.00389915704727, 6.00389856100082, 6.00389796495438,
6.00389736890793, 6.00389677286148, 6.00389611721039, 6.00389552116394,
6.00389492511749, 6.00389432907105, 3.0038937330246, 19.0038931369782,
19.0038924813271, 19.0038918852806, 19.0038912892342, 19.0038146972656,
19.003662109375, 19.0034942626953, 19.0033416748047, 19.0031890869141,
19.0030364990234, 51.0028686523438, 51.0027160644531, 51.0025634765625,
51.0024108886719, 51.0022430419922, 51.0020904541016, 51.0019378662109];
blah2 =
[-137, -147, -158, -168, -178, -188, -199, -209, -219, -229, -240, -250, -1535, -
4095, -6655, -9471, -12031, -14591, -17151, -19711, -22271, -25087, -27647, -30207,
-32767, -35327, -37887, -40703, -43263, -45823, -48383, -51199, -53759, -56319, -
58879, -61695, -64255, -393205, -1048546, -1703889, -2424770, -3080116, -3735463,
-4390813, -5046164, -5701516, -6422407, -7077762, -7733120, -8388479, -8454005, -
8585067, -8912737, -9240406, -9764684, -10354498, -11009848, -11861806, -12779300
-13762329, -14876431, -16121605, -16775680, -16773120, -16770304, -16767744, -
16765184, -16762624, -16759808, -16757248, -16754688, -16752128, -16749312, -
16746752, -16744192, -16741632, -16739072, -16736512, -16733696, -16731136, -
16728576, -16726016, -16723456, -16720896, -16718080, -16715520, -16712960, -
16384000, -15728640, -15007744, -14352384, -13697024, -13041664, -12320768, -
11665408, -11010048, -10354688, -9633792, -8978432, -8323072]; * /