Wenn Sie mit Diagrammen und Plots arbeiten, müssen Sie höchstwahrscheinlich Farben in einem Diagramm füllen, um einen Bereich hervorzuheben oder ihn von anderen Formen zu unterscheiden. Sie wissen vielleicht, wie man normale Formen schattiert, aber was ist damit? unregelmäßige Polygone und Konturen ? Sie können dies mit Polygon () problemlos für jede grafische Form tun. Wir brauchen nur die Datenpunkte!

Oben sehen Sie eine Grafik, an der ich für die Prognose der Patientenrekrutierung gearbeitet habe (siehe Blogbeitrag in Kürze). Die Strichpunktlinien sind 2,5 th und 97,5 th Perzentile von 10.000 Simulationen. Die durchgezogene rote Linie ist der Mittelwert der simulierten Werte. Wenn Sie dieses Konfidenzintervall mit Farbe ausfüllen, können Sie den Umfang der Einschreibungsvorhersage verstehen. Daher habe ich untersucht, wie dies möglich ist. Am Anfang habe ich die drei Eckpunkte des Dreiecks angegeben und Folgendes erhalten:

Hmm… nicht ganz das, was ich erwartet hatte. Was ist das Problem? Anscheinend ist diese Grafik nicht genau ein Dreieck, obwohl sie auf jeden Fall so aussieht. Der untere Teil ist breiter und daher könnte die dreieckige Schattierung nicht den gesamten Konfidenzintervallbereich abdecken. Wie können wir das beheben?
Um eine Grafik mit Farbe zu füllen, müssen Sie zuerst die Grenze Ihrer Form und die Datenpunkte kennen, die die Grenze bilden. In diesem Fall sind meine Grenzen drei Seiten des "Dreiecks", und die Datenpunkte sind 2,5 th Perzentile und 97,5 th Perzentile Beachten Sie, dass ich die dritte Seite, das horizontale Liniensegment, nicht brauche, denn sobald ich die beiden Seiten konstruiere, JMP verbindet die beiden Endpunkte automatisch mit einer geraden Linie. Wenn Sie jedoch ein Segment haben, das nicht gerade ist, benötigen Sie Datenpunkte, um JMP mitzuteilen, wo die Schattierung aufhört.
Als nächstes ziehen wir in JSL die Datenpunkte aus dem Datensatz heraus, speichern die Daten in Spalten und sortieren sie.
ds = Data Table( "graphbuilder" );
ds << select where (: data == "Predicted 2,5%");
dslow = ds << Teilmenge (
Name der Ausgabetabelle ("Lower Percentile"),
Ausgewählte Zeilen (1),
unsichtbar
);
dslow_sort = dslow << sort (By (: time), Order (Ascending));
ds << select where (: data == "Predicted 97.5%");
dsupp = ds << Teilmenge (
Name der Ausgabetabelle ("Oberes Perzentil"),
Ausgewählte Zeilen (1),
unsichtbar
);
dsupp_sort = dsupp << sort (By (: time), Order (Descending));
Die beiden Teilmengen dslow und dsupp enthalten Datenpunkte unserer Grenze, die beiden Strichpunktlinien. Beachten Sie, dass ich dslow in aufsteigender Reihenfolge sortiert habe, dsupp jedoch in absteigender Reihenfolge, da JMP die Grenze mit der Richtung zeichnet. Ich habe mich dazu entschieden, das CI-Band im Uhrzeigersinn zu zeichnen: vom Schnittpunkt der blauen Linie und der roten Linie ausgehend nach 2.5 th Perzentil und nach dem 97.5 th Perzentil von der horizontalen Seite. Somit sind die Datenpunkte der 97,5 th Perzentil muss in absteigender Reihenfolge sein.
Nun, da wir die Datenpunkte sortiert haben, müssen wir sie in einer Matrix mit dem Namen "all" zusammenstellen. Die x-Werte in der Matrix sind "xall" und die y-Werte in der Matrix sind "yall". Hier ist die Zeit meine x-Achse und die Zahl meine y-Achse.
Col1 = Column( dslow_sort, "time" );
tl = col << GetAsMatrix;
Col1 = Spalte (dslow_sort, "number");
nl = col << GetAsMatrix;
Col2 = Spalte (dsupp_sort, "time");
tu = col << GetAsMatrix;
col2 = Spalte (dsupp_sort, "number");
nu = col << GetAsMatrix;
niedriger = tl || nl;
obere = tu || nu;
all = lower | / upper;
xall = alle [0,1];
yall = alle [0,2];
Pen Color( "red" );
Füllfarbe ("Rot");
Transparenz (0,2);
Polygon (xall, yall);

Der letzte Schritt ist einfach: Rufen Sie die Matrix in Polygon () auf und füllen Sie die Farbe aus. Verwenden Sie den Code aus dem zweiten Feld oben in Ihrer Graph Builder-Anweisung oder in einem neuen Fenster. Sie sollten jetzt ein Dreiecksband haben, das mit einem gewissen Grad an Transparenz perfekt rot schattiert ist!
Abschließende Gedanken : Sie können jede Form eines Bereichs mit Farbe füllen, solange Sie über die Datenpunkte verfügen. Nachfolgend finden Sie ein weiteres Beispiel für das Schattieren von Grafikskripts, das nur eine der vielen Varianten veranschaulicht, die Sie durch Ändern der Optionen erstellen können.

Viel Spaß beim Schattieren!