Farbcode Top 5Ich möchte meine Tabelle farblich kennzeichnen (damit alle Diagramme und Grafiken, die ich erstelle, gleich sind). Aber ich möchte es so machen, dass die oberen 5 rot, die mittleren 15 gelb und die unteren 27 grün sind. Es muss eine einfache Möglichkeit geben, dies zu tun.
Zum Vergleich habe ich alle CDC-Ratendaten für verschiedene Krankheiten, die ich für 2014–2021 verfolgen muss. Ich muss in der Lage sein, die USA mit einem der Bundesstaaten zu vergleichen und anzuzeigen, ob dieser Bundesstaat im Vergleich zu anderen Bundesstaaten unter den ersten fünf, in der Mitte oder am unteren Ende liegt. In einer perfekten Welt würde die eine Zeile in den Vereinigten Staaten immer so schwarz angezeigt werden wie die Benchmark. Ich habe die Datendateien unten angehängt. Beim einen handelt es sich um die Daten in Spalten, beim anderen um gestapelte Daten.
Ich verwende JMP 17.
Datenexploration und -visualisierungErgebnisse teilen und kommunizierenWindowsBetreff: Farbcode Top 5Hier ist ein kleines Skript, das die Gruppierungen oben, in der Mitte und unten sowie in den USA angibt
Dies erfolgt für jedes Jahr separat.Wenn Sie das nicht möchten, können Sie das Skript einfach ändern, indem Sie die Jahresangaben entfernen.

Names Default To Here( 1 );
dt = Data Table( "All Items 2014-2021 Stacked" );
dtSum =
// → Data Table( "SummaryData" )
Data Table( "All Items 2014-2021 Stacked" ) << Summary(
Group( :State, :Year ),
Mean( :Data ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
output table name( "SummaryData" )
);
dtSum << delete rows( dtSum << get rows where( :state == "United States" ) );
// Sort data table
dtSum = Data Table( "SummaryData" ) << Sort(
By( :Year, :"Mean(Data)"n ),
Replace Table,
Order( Ascending, Ascending )
);
DtSum << New Column( "Color Group",
character,
set each value(
If(
Col Cumulative Sum( 1, :Year ) <= 5, "Top",
Col Cumulative Sum( 1, :Year ) <= 20, "Middle",
"Bottom"
)
)
);
Data Table( "All Items 2014-2021 Stacked" ) << Update(
With( Data Table( "SummaryData" ) ),
Match Columns( :State = :State, :Year = :Year )
);
dt:Color Group[dt << get rows where( :Color Group == "" )] = "U.S.";
dt << delete column( :"Mean(Data)"n );
dt:color group << set property( "value colors", {"Bottom" = 20, "Middle" = 41, "Top" = 19, "U.S." = 0} );
dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :State ), Y( :Data ), Color( :Color Group ) ),
Elements( Points( X, Y, Legend( 7 ) ) )
);
Betreff: Farbcode Top 5Das hilft sehr. Aber der erste Teil Ihres Skripts, in dem die zusammenfassenden Daten generiert werden. Was bedeutet N Zeilen? Ich muss wissen, um welchen Virus es sich jeweils handelt.
Betreff: Farbcode Top 5Die Spalte „N Zeilen“ zeigt Ihnen, wie viele Spalten für eine Gruppe in Ihrer Haupttabelle vorhanden sind. Im folgenden Screenshot erfahren Sie in der Übersichtstabelle, dass es für Alabama im Jahr 2014 drei Zeilen gibt, und so weiter. Dadurch werden die verschiedenen Viren in der Spalte „Mean(Data)“ vermischt.

Betreff: Farbcode Top 5Leider brauche ich alle Viren getrennt. Wäre es besser, wenn ich jeden Virus als eigene Tabelle hätte?
Betreff: Farbcode Top 5Eine Möglichkeit, das Problem zu lösen, wäre die Aufteilung jedes Virus in separate Datentabellen.Führen Sie dann das Skript für jede Virendatentabelle aus.
Es wäre auch möglich, einfach „Virus“ in das von mir bereitgestellte Skript einzufügen, zusammen mit der Aggregation „Status“ und „Jahr“, und die Berechnungen würden für jeden Virus separat durchgeführt.
Betreff: Farbcode Top 5Jetzt habe ich es also perfekt. Ich habe noch eine Frage. Gibt es eine Möglichkeit, meine Datenspalte und meine Farbgruppenspalte zu kombinieren, sodass ich die Daten/Zahlen in der Datenspalte sehe, aber die Farbe in dieser Zelle die der Farbgruppe ist?
Betreff: Farbcode Top 5Der Scripting Index bietet Definitionen und Beispiele für alle die meisten Funktionen und Nachrichten, die in JSL verwendet werden können.Hier ist ein einfacher Teil von JSL, um das zu tun, was Sie brauchen. Sie müssen sich jedoch mit dem Scripting Index vertraut machen, damit Sie Ihre eigenen Antworten finden können.Das ist ein fortlaufender Prozess für uns alle.
dt:color group << color cells("green", dt << get rows where(:color group =="Bottom"));
dt:color group << color cells("yellow", dt << get rows where(:color group =="Middle"));
dt:color group << color cells("red", dt << get rows where(:color group =="Top"));
dt:color group << color cells("black", dt << get rows where(:color group =="U.S."));Betreff: Farbcode Top 5Die Antwort hängt möglicherweise ein wenig davon ab, wofür Sie die Tabelle (und die Farben) verwenden. Es gibt reine Skriptoptionen oder Sie können dies interaktiv tun: Wenn Sie Wertfarben in einer Ihrer Spalten haben, wählen Sie diese Spalte aus und gehen Sie zu Zeilen/Farbe oder Nach Spalte markieren

Drücken Sie dann im Menü auf OK.

Dadurch werden diese Farben als Zeilenzustände festgelegt

Klicken Sie mit der rechten Maustaste auf diese Zeilen und wählen Sie die Farbe nach Zeilenstatus aus

Jetzt haben Sie alle Zeilen mit diesen Farben.

Wählen Sie dann alle Spalten aus, die diese Farbe nicht haben sollen, klicken Sie mit der rechten Maustaste auf eine der ausgewählten Zellen und stellen Sie die Farbe auf Weiß ein

Mit dieser Methode erhalten Sie jedoch bestimmte Farben als Zeilenstatus für Zeilen und eine Farbe für Ihre Zellen (Sie verwenden Weiß, um die Zeilenstatusfarbe zu überschreiben).

Es scheint auch, dass JMP diese Aktionen nicht aufzeichnen kann, um Ihnen ein Skript bereitzustellen.
Bearbeiten:
Einige Ideen für die Skripterstellung finden Sie hier Wie kann ich mit JSL den Farbverlauf einer Spalte im Textformat anhand des Werts einer numerischen Spalte festlegen?aber deine Situation ist etwas anders
Edit2:
Hier ist eine etwas fortgeschrittenere Methode zum Färben der Zellen mithilfe von Skripten
Names Default To Here(1);
dt = Open("$DOWNLOADS/All Items 2014-2021 Stacked.jmp");
color_property = Column(dt, "Color Group") << Get Property("Value Colors");
values = dt[0, "Color Group"];
For Each({color_prop}, color_property,
value = Arg(color_prop, 1);
color = Arg(color_prop, 2);
color_rows = dt << Get Rows Where(:Color Group == value);
:Data << color cells({color, color_rows});
);
Betreff: Farbcode Top 5Danke schön!!! Ich habe es jetzt perfekt!!!
Betreff: Farbcode Top 5Ich freue mich, dass das Problem bei Ihnen gelöst wird.Stellen Sie sicher, dass Sie Ihre Aufgabe abschließen, indem Sie Folgendes tun:
- Schneiden Sie den Code nicht einfach aus und fügen Sie ihn in Ihre Anwendung ein.Stellen Sie sicher, dass Sie sich die Zeit nehmen, die bereitgestellte JSL zu studieren und lernen wie die verschiedenen Elemente innerhalb der JSL funktionieren.
- Sehen Sie sich noch einmal die Antworten an, die Sie erhalten haben, und markieren Sie diejenigen, die das Problem für Sie gelöst haben, als LÖSUNG, um zukünftige Leser dazu zu bewegen, so effizient wie möglich zur Antwort zu gelangen.