Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptHallo,
Ich habe viele Daten, die ich gerne als Heatmap aus einer Datentabelle plotten möchte. Ich habe unten ein Bild eines Beispieldatentabellenbilds und die Schritte zum Erstellen der Heatmap in der Datentabelle angehängt. Es folgen die folgenden Schritte:
- Holen Sie sich eine Datentabelle, nachdem Sie tabulate verwendet haben
- Stapeln Sie alle Spalten (außer 'Typ'). Führen Sie dann eine Zusammenfassung des gesamten Datensatzes durch, um min, median und max zu ermitteln.
- Nehmen Sie die Min-, Median- und Max-Werte aus Schritt 2 und fügen Sie sie in die Farbverlaufswerte ein.
Das Ergebnis der Datentabelle nach dem Ausführen dieser Schritte ist unten dargestellt. Derzeit mache ich Schritt 3 manuell, wobei ich den Wert, den ich nach der Zusammenfassung erhalte, in die Farbverlaufswerte eingebe. Gibt es eine Möglichkeit, die mit einem Skript datierbaren Werte (min, median, max) aus der Zusammenfassung zu übernehmen und in den Farbverlauf einzugeben?
Ich habe auch den Beispieldatensatz angehängt.


DatentabelleSkriptingBetreff: Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptHier ist die JSL, mit der der Farbverlauf festgelegt wird
names default to here(1);
dt=current data table();
dt:"Group:0, test:A"n << set property("color gradient",{"Green Yellow Red", Range(
{-142.439058836207, -42.6065023706896, -97.9221899694684}
)});
Ich finde, der einfachste Weg, die Werte in die erforderlichen Listen einzufügen, ist die Verwendung von Code ähnlich dem folgenden:
Max = -142.439058836207;
Min = -42.6065023706896;
Mid = -97.9221899694684;<BR />
Eval(
Substitute(
Expr(
dt:"Group:0, test:A"n << set property(
"color gradient",
{"Green Yellow Red", Range( {__Max__, __Min__, __Mid__} )}
);
),
Expr( __Max__ ), Max,
Expr( __Min__ ), Min,
Expr( __Mid__ ), Mid
)
);Betreff: Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptDanke für die Eingabe! Ich verwende Ihr Skript als guten Ausgangspunkt, aber ich hatte gehofft, es dynamischer zu gestalten.
- In dem Skript, in dem Sie die Werte für max, min und mid manuell auf Werte setzen, können sie in der Ausgabezusammenfassungstabelle in Schritt 2 des Bildes festgelegt werden. Grundsätzlich liegen diese Werte für max, min und mid im Bereich für Group: 0-Test: AI möchte den Bereich max, min und mid für die gesamte Tabelle erhalten.
- Ich musste Color Cell by Value (1) in mein Skript einfügen und habe versucht, auch die umgekehrte Skalierung einzustellen, und habe Fehlermeldungen erhalten. Haben Sie eine Idee, wie das geht?
- Ist es auch sicher anzunehmen, dass ich zum Ausführen des Farbverlaufs für alle Spalten nur eine for-Schleife außerhalb des von Ihnen gesendeten Codes benötigen würde? Oder gibt es einen anderen Weg, dies zu tun?
names default to here(1);
dt=current data table();
dt:"Group:0, test:A" << set property("color gradient",{"Green Yellow Red", Range(
{-142.439058836207, -42.6065023706896, -97.9221899694684}
)});
Max = -142.439058836207;
Min = -42.6065023706896;
Mid = -97.9221899694684;
Eval(
Substitute(
Expr(
dt:"Group:0, test:A"n << set property(
"color gradient",
{"Green Yellow Red", Range( {__Max__, __Min__, __Mid__} )},
)
:dt << Color Cell by Value( 1 );
),
Expr( __Max__ ), Max,
Expr( __Min__ ), Min,
Expr( __Mid__ ), Mid
)
);Betreff: Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptHier ist ein Beispiel, das die Spaltenfärbung der Big Class-Beispieldatentabelle automatisiert.Sie sollten in der Lage sein, von diesem Skript abzuzweigen, damit es mit Ihren Daten funktioniert
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
Eval(
Substitute(
Expr(
Summarize(
dt,
myMax = Max( As Column( __col__ ) ),
myMin = Min( As Column( __col__ ) ),
myMid = Mean( As Column( __col__ ) )
);
Column( __col__ ) <<
set property(
"color gradient",
{"Green Yellow Red",
Range( {__Max__, __Min__, __Mid__} ), "Reverse Scale"}
) << Color Cell by Value( 1 );
),
Expr( __col__ ), colList[i],
Expr( __Max__ ), myMax,
Expr( __Min__ ), myMin,
Expr( __Mid__ ), myMid
)
)
);Betreff: Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptWenn ich Ihr Skript so ausführe, wie es ist (unter Verwendung eines großen Klassendatensatzes), stürzt es für mich ab und ich erhalte die folgende Meldung:
Name Unresolved: myMax in access or evaluation of 'myMax' , myMax/*###*/
at line 25 in Script 4.jsl
Betreff: Erstellen einer Heatmap auf einer Datentabelle und Aktualisieren des Farbverlaufs mit einem SkriptMein Fehler ...... Die Anfangswerte von myMax usw. wurden aus früheren Ausführungen übernommen, als ich das Skript schrieb.Unten ist ein Fix
Names Default To Here( 1 );
Clear Symbols();
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
Eval(
Substitute(
Expr(
Summarize(
dt,
myMax = Max( __col__ ),
myMin = Min( __col__ ),
myMid = Mean( __col__ )
)
),
Expr( __col__ ), colList[i]
)
);
Eval(
Substitute(
Expr(
Column( __col__ ) <<
set property(
"color gradient",
{"Green Yellow Red",
Range( {__Max__, __Min__, __Mid__} ), "Reverse Scale"}
) << Color Cell by Value( 1 );
),
Expr( __col__ ), colList[i],
Expr( __Max__ ), myMax,
Expr( __Min__ ), myMin,
Expr( __Mid__ ), myMid
)
);
);