Definieren eines benutzerdefinierten Farbverlaufs in der Graph Builder-Heatmap mit JSLIch habe ein Modell mit acht Faktoren und vier Antworten. Ich möchte eine Heatmap erstellen, die zeigt, welche Faktoren für welche Antworten von Bedeutung sind.Ich möchte meine eigene Farbskala definieren können, zum Beispiel:
<0,0001 bis 0,01 = orange
0,001 bis 0,05 = rot
> 0,05 = weiß
Ich habe mit dem Farbverlauf in Graph Builder herumgespielt, kann aber nicht sehen, wie ich das tun soll, was ich will. Vielleicht ist dies nicht einmal mehr technisch ein Gefälle, aber es scheint möglich zu sein.Das Bild unten ist so nah wie ich bekommen habe.

Hier ist ein Ausschnitt aus dem Skript. Der vollständige Datensatz mit gespeichertem Skript wird angehängt.
Gradient(
{Farbthema ("Grün Gelb Rot"),
Skalenwerte ([0 0,05]],
Breite (9),
Bereichstyp ("Exakter Datenbereich"),
Umkehrgradient (1),
Diskrete Farben (1),
N Etiketten (5)}
)
Anregungen wäre dankbar.
-Tom
Betreff: Definieren eines benutzerdefinierten Farbverlaufs in der Graph Builder-Heatmap mit JSLHallo Tom!
Sie können Ihre eigenen Farbthemen in JMP definieren. Probieren Sie so etwas aus:
Preferences( Add Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255, 255, 255}, {252, 187,
161}, {252, 146, 114}, {251, 106, 74}, {239, 59, 44}, {203, 24, 29}, {165,
15, 21}, {103, 0, 13}}, {0, 0.95, 0.96,
0.97, 0.98, 0.99, 0.995,
0.999, 1}}
),
);Die Farben werden in RGB-Werten codiert (z. B. {255, 255, 255} ist weiß) und die gewünschten Inkremente werden am Ende angegeben (z. B. sind die ersten 95% der Farbskala weiß, wie sie derzeit definiert sind). Dies ist ein erster grober Entwurf, daher müssen Sie möglicherweise die Inkremente oder Farben so ändern, wie Sie möchten. Beachten Sie, dass dadurch ein neues Farbthema erstellt wird, das Sie in jedem Diagramm verwenden können. Stellen Sie sicher, dass in der Grafik "min" und "max" für die Farbskala angegeben sind, da sonst dieser Farbverlauf bei 0,05 nicht orange wird:
gradient(
{Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255,
255, 255}, {252, 187, 161}, {252, 146, 114}, {251, 106,
74}, {239, 59, 44}, {203, 24, 29}, {165, 15, 21}, {103,
0, 13}}, {0, 0.95, 0.96, 0.97, 0.98, 0.99, 0.995, 0.999,
1}}
), Scale Values( [0 1] ), Reverse Labels( 1 )}
)Hoffe das hilft!
Kira
Betreff: Definieren eines benutzerdefinierten Farbverlaufs in der Graph Builder-Heatmap mit JSLHallo Kira,
Danke für Ihre Hilfe.Das hat mir wirklich geholfen, dorthin zu gelangen, wo ich hin wollte.
Ich werde ein wenig mehr Details dazu hinzufügen, wie dies für andere gemacht werden kann, die möglicherweise etwas Ähnliches versuchen, da ich in der JMP-Dokumentation keine Details finden konnte.
Wenn Sie mit der rechten Maustaste auf die Heatmap-Legende klicken, wählen Sie "Verlauf", klicken Sie dann auf das Farbthema und dann auf "Twisty", um "Benutzerdefiniertes Farbthema" zu öffnen.Dies ist das Setup, das letztendlich für mich funktioniert hat.

Es scheint hier, dass es nur vier Punkte gibt, die den Gradienten bei 0, 10, 50 und 100% definieren, aber das ist nicht wahr.Wenn Sie nur diese vier Punkte definieren, erhalten Sie Farbverläufe zwischen diesen Punkten, z. B. Rot bis Orange von 0-10%. Wenn Sie mit 10% von Rot nach Orange wechseln möchten, müssen Sie bei 10% sowohl einen roten als auch einen orangefarbenen Punkt definieren.Die Benutzeroberfläche zeigt dort nur einen Marker an, da wir ihn für etwas verwenden, für das er nicht entwickelt wurde.
Um drei diskrete Farbbereiche zu erhalten, müssen Sie sechs Punkte definieren, obwohl Sie aufgrund von Überlappungen nur vier oben sehen.Während die obige Visualisierung hilfreich ist nach dem Fakt Ich konnte es nicht verwenden, um das zu bekommen, was ich will, indem ich die Schieberegler bewegte. Ich musste es direkt schreiben. So sah mein Code aus:
{Color Theme(
{"White to Red p-Value", 2051,
/*0%->red 10%->red 10%->orange 50%->orange 50%->white 100%->white */
{{255,0,0},{255,0,0},{255,165,0},{255,165,0},{255,255,255},{255,255,255}},
{.0000 , 0.1 , 0.1 , 0.5 , 0.5 , 1 }
}Wie Kira betonte, ist der Skalierungsfaktor wichtig, um richtig zu machen. Die Werte im Farbthema reichen von 0 bis 1 (0 bis 100% der definierten Skala).Der Skalierungsfaktor "ordnet" die Farbskala Ihrer speziellen Variablen zu - in meinem Fall 0 bis 0,1.
Ich kann mir andere Fälle vorstellen, in denen ich fortlaufende Daten aufnehmen und sie Farbschritten und nicht Farbverläufen zuordnen möchte. Vielleicht gibt es eine bessere Möglichkeit, dies in JMP zu tun, oder nur eine Einstellung, die mir fehlt. (Ich habe es auch so gemacht, wie Kira es vorgeschlagen hat, indem ich eine neue Spalte erstellt habe - das ist definitiv auch eine vernünftige Option.)
Meine endgültige Ausgabe sieht folgendermaßen aus, wobei in jeder Zelle F-Verhältnisse angezeigt werden:

In der angehängten Datei befindet sich der Originaldatensatz. Das erste Skript führt das Modell aus. Der zweite Teil geht in den Bericht ein, extrahiert die p-Werte und f-Verhältnisse und erstellt die Wärmekarte.Ich wünschte, ich hätte genug über das Navigieren in Berichtsbaumstrukturen verstanden, um dieses Heatmap-Skript "intelligent" genug zu machen, um die Tabelle "Effekttest" überall im Bericht zu finden.So wie es jetzt ist, ist das fest codiert, sodass das Skript wahrscheinlich nur mit diesem bestimmten Bericht funktioniert.
dt_pvals = report(fls)[outlinebox(1)][TableBox(6)] << make combined data table;
Ich denke, dies könnte ein hilfreiches Visualisierungswerkzeug sein, wenn Sie mit mehreren Faktoren und Antworten arbeiten.
-Tom
Betreff: Definieren eines benutzerdefinierten Farbverlaufs in der Graph Builder-Heatmap mit JSLSuper, danke für die ausführliche Erklärung Tom!