Hervorheben der Markierungen bestimmter Zeilen im bivariaten DiagrammHallo
Es wird versucht, die Markierungen bestimmter Zeilen im bivariaten Diagramm hervorzuheben.
Ich habe den Plot manuell erstellt, das Skriptfenster gespeichert und die Spalte „Thema“ manuell als Zeilenlegende ausgewählt.
Aber das Problem ist, dass ich diese Schritte oben im Skript nicht sehe, als ich es mir angesehen habe!
Hier ist, was ich meine
dt = Open( "$sample_data/Hollywood Movies.jmp" );
dt = currentdatatable(); // Don't know I need this here anyway
Bivariate(
Y( :Domestic Gross ),
X( :Foreign Gross ),
Fit Where( :Genre == "Action", Fit Line( {Line Color( {212, 73, 88} )} ) ),
Fit Where(
:Genre == "Adventure",
Fit Line(
{Line Color( {61, 174, 70} )},
{Set α Level( 4.06068261874589e-315 )}
)
),
Fit Where( :Genre == "Animation", Fit Line( {Line Color( {66, 112, 221} )} ) ),
Fit Where( :Genre == "Comedy", Fit Line( {Line Color( {204, 121, 41} )} ) ),
Fit Where( :Genre == "Drama", Fit Line( {Line Color( {40, 182, 143} )} ) ),
Fit Where( :Genre == "Fantasy", Fit Line( {Line Color( {162, 43, 221} )} ) ),
Fit Where( :Genre == "Horror", Fit Line( {Line Color( {196, 189, 43} )} ) ),
Fit Where( :Genre == "Romance", Fit Line( {Line Color( {39, 174, 174} )} ) ),
Fit Where( :Genre == "Thriller", Fit Line( {Line Color( {197, 41, 201} )} ) ),
SendToReport( // What does this mean here ? Why we need this ?
Dispatch( // What does this mean here ? why we need this ?
{},
"Bivar Plot",
FrameBox,
{Frame Size( 377, 299 ), Row Legend(
Theme,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 1 ),
Marker Theme( "Standard" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);was schafft

Ich möchte steuern, welche Spalte eine Zeilenlegende sein soll, und die Zeilen in dieser Spalte hervorheben. Etwas wie das

Ich bin mir sicher, dass das im Handbuch nicht steht.
Betreff: Hervorheben der Markierungen bestimmter Zeilen im bivariaten DiagrammNames Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 15 ),
New Column( "sex",
Character,
"Nominal",
Set Values(
{"F", "F", "F", "F", "F", "M", "M", "M", "F", "F", "F", "M", "M", "M",
"M"}
)
),
New Column( "height",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59] )
),
New Column( "weight",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values(
[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79]
)
),
Set Row States(
[192, 193, 193, 193, 193, 32833, 32833, 32832, 192, 192, 192, 32832, 32832,
32832, 32832]
)
);
// Here is the Bivariate Platform. It will honor the rowstates
// I have provided some selections, etc. but you can change them
// to whatever selections you want
Bivariate(
Y( :height ),
X( :weight ),
Fit Where( :sex == "F", Fit Line( {Line Color( "Medium Dark Red" )} ) ),
Fit Where( :sex == "M", Fit Line( {Line Color( "Medium Dark Blue" )} ) )
);
// Here is the code to create the new rowstate column
// But it can easily be done manually by just creating a new
// column, and then going to the Col Info window, and setting the
// data type to Row State
dt << New Column( "The RowStates", rowstate );
// This is the command that copies the rowstates from the
// rowstate column, to the new column called The RowStates<BR />// To do this interactively just go to the column panel and<BR />// right click on the red star in front of the new column<BR />// and select "Copy From Rowstates"
dt:The RowStates << copy from rowstates;
// dt:The RowStates << Hide(1); // This will hide the column from view
// The rest is manual(interactive);
// Go to the red triangle on the Bivariate output and select
// Save Script==>To Data Table
// Once it is saved, Go to the green triangle in front of the script that was just
// saved to the data table. Right click on the green triangle and select Edit
// Now add the following line as the first line
// :The RowStates << Copy to Row states;
// Make sure you remove the // from the front of the line
// Now, whenever you run the script, the row states from when you created the graph
// will be applied before the graph is createdBetreff: Hervorheben der Markierungen bestimmter Zeilen im bivariaten DiagrammDanke für die lange Erklärung. Wirklich sehr hilfreich. Der Teil hat mir gefallen“ dass Sie denken, dass es das Diagramm ist, das die Punkte (Markierungen) hervorhebt.Aber leider ist es die Datentabelle, die die Hervorhebung steuert. " Das ist eine hervorragende Erklärung.
OTH, die Frage zu Punkt 2) Wie geht das? Für Sie mit jahrelanger Erfahrung braucht es nur eine Sekunde, um sie in JSL umzusetzen, aber für mich würde es eine Woche dauern, um herauszufinden, was Sie damit wirklich gemeint haben oder wie man es in die Tat umsetzt. Ich wünsche mir, dass du ein paar Skripte postest, um deinen Denkprozess zu demonstrieren, damit vielleicht auch andere davon profitieren;)
Betreff: Hervorheben der Markierungen bestimmter Zeilen im bivariaten DiagrammDie Hervorhebung bestimmter Markierungen (Punkte) in einem Diagramm und das anschließende Ausblenden der verbleibenden Markierungen hängt tatsächlich von der Datentabelle ab und davon, welche Zeilen in einer Datentabelle ausgewählt werden. Wenn Sie zu einer Datentabelle wechseln, in deren Spalten ein bivariates Streudiagramm erstellt wurde, und eine der Zeilen in der Datentabelle auswählen, wird der Punkt im bivariaten Diagramm hervorgehoben und alle anderen Punkte ausgeblendet.Dieses Verhalten, eine oder mehrere Zeilen in einer Datentabelle auszuwählen und diese Zeile(n) in allen mit der Datentabelle verknüpften Diagrammen hervorzuheben, ist eines der Grundprinzipien von JMP.Das Verhalten, das Sie sehen, wenn Sie auf eine bestimmte Legende im Diagramm oder auf eine Gruppe von Punkten (Markierungen) in einem Diagramm klicken, bedeutet also nicht, dass das Diagramm diese Punkte hervorheben soll, in Wirklichkeit ist dies jedoch der Fall Die Datentabelle wird angewiesen, bestimmte Zeilen in der Datentabelle auszuwählen. Diese Aktion in der Datentabelle weist dann alle zugehörigen Diagramme an, die Punkte in den Diagrammen hervorzuheben, die die Daten aus den ausgewählten Zeilen darstellen.Dieses Verhalten gibt es bei JMP seit seinen Anfängen.Warum habe ich mir nun die ganze Zeit genommen, Ihnen das zu sagen?Nun, Ihre Beschreibung, dass Sie nicht verstehen, warum die hervorgehobenen Datenpunkte nicht in Ihrem gespeicherten Skript erfasst werden, deutet für mich darauf hin, dass Sie denken, dass es das Diagramm ist, das die Punkte (Markierungen) hervorhebt.Aber leider ist es die Datentabelle, die die Hervorhebung steuert.Eine Möglichkeit, dem Diagramm die gewünschte Hervorhebung zu verleihen, besteht darin, die Zeilen in der Datentabelle auszuwählen, die Sie auswählen müssen, um die hervorgehobenen Markierungen zu erstellen, und dann die Datentabelle zu speichern.Die Zeilenauswahl in der Datentabelle wird gespeichert und beim Öffnen und Ausführen des Skripts für das Diagramm wird das Diagramm wie gewünscht angezeigt.Dies ist normalerweise nicht die Lösung der Wahl.Drei andere Methoden zur Handhabung der hervorzuhebenden Markierungen sind normalerweise die bessere Wahl.
- Fügen Sie dem Skript manuell den Code hinzu, der speziell die gewünschte(n) Zeile(n) auswählt;
- Erstellen Sie eine neue Spalte mit dem Datentyp „rowstate“, richten Sie die Datentabellenauswahl, Markierungen usw. so ein, wie Sie sie benötigen, damit das Diagramm so angezeigt wird, wie Sie es möchten, und speichern Sie dann die Rowstates im neuen rowstate-Spalte.Anschließend fügen Sie die Anweisung in Ihr gespeichertes Skript ein, die die gewünschten Rowstate-Werte aus der Rowstate-Spalte zurück in die Rowstates für die Datentabelle kopiert, und generieren dann das Diagramm.
- Verwenden Sie einen lokalen Datenfilter für die Zeilenauswahl.Der lokale Filter wählt Zeilen in der Datentabelle nicht physisch aus.Stattdessen stellt es eine virtuelle Auswahlumgebung für die spezifische Plattform bereit, die sich genau so verhält, als hätte man sie in der Datentabelle selbst ausgewählt.Der lokale Datenfilter wird in einem gespeicherten Skript gespeichert.
Ich hoffe das macht Sinn.Wenn Sie weitere Fragen haben, stellen Sie diese bitte.