Wie kann ich die Referenzlinie ändern? keine ZahlHallo Ich möchte den Standardmittelwert der beiden Daten in die Referenzlinie einfügen, wie in der Grafik unten gezeigt.
Im folgenden JMP-Skript habe ich willkürlich den Standardmittelwert geschrieben: 13,2 (22,2+4,2)/2 = 13,2
Tatsächlich sind es mehr als zwei Daten, die ich verwende. (Das Bild unten ist nur ein Beispiel)
Wie kann ich das Skript ändern?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( 13.3, "Solid", "Medium Dark Red", "Std Dev mean", 2 )}
),
Dispatch(
{},
"weight",
ScaleBox,
{Add Ref Line( 13.3, "Solid", "Medium Dark Red", "Std Dev mean", 2 )}
)
)
);
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine ZahlHier ist die Methode, die ich verwende, um die Spaltenstatistiken für eine bestimmte Untergruppe, wie z. B. „Alter“, zu erfassen, und die Sie verwenden.

Hier ist das Skript.Fügen Sie einfach die gewünschten zusätzlichen Referenzlinien mit derselben Methode hinzu
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( X( :height ), Group Y( :age ) ),
Elements(
Bar( X, Legend( 17 ) ),
Caption Box( X, Legend( 15 ), Response Axis( "X" ) ),
Caption Box(
X,
Legend( 16 ),
Response Axis( "X" ),
Summary Statistic( "Std Dev" )
)
)
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( if(:age == 12,:height,.) ) + 4*Col Std Dev( If(:age==12,:height,) ),
"Solid",
"Medium Dark Red",
"Std Dev mean 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Min( if(:age == 12,:height,.) ),
"Solid",
"Medium Dark Red",
"Min 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Max( if(:age == 12,:height,.) ),
"Solid",
"Medium Dark Red",
"Max 12",
2
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( if(:age == 13,:height,.) ) + 4*Col Std Dev( If(:age==13,:height,) ),
"Solid",
"Medium Dark Red",
"Std Dev mean 13",
2
);
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine Zahl@txnelson
Danke für Ihre nette Antwort!
Ich habe noch ein letztes! Frage.
Tut mir leid, dass ich dich störe..
Ich möchte die Ref-Zeile Max, min (Mittelwert + 4 * Standardabweichung) in der Gesamtgruppe (Alter) hinzufügen.
Das Problem liegt darin, dass das folgende Skript nicht funktioniert.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( X( :height ), Group Y( :age ) ),
Elements(
Bar( X, Legend( 17 ) ),
Caption Box( X, Legend( 15 ), Response Axis( "X" ) ),
Caption Box(
X,
Legend( 16 ),
Response Axis( "X" ),
Summary Statistic( "Std Dev" )
)
)
);
Report( gb )[AxisBox( 1 )] << Add Ref Line(
Col Mean( :height ) + 4*Col Std Dev( :height ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
und das andere Problem, wie kann ich Max, Min (Mittelwert + 4 * Standardabweichung) der gesamten Gruppe (Alter) extrahieren?
Ich möchte die Ref-Linie Max (Mittelwert + 4 * Standardabweichung), Min (Mittelwert + 4 * Standardabweichung) für alle Gruppen gleich anwenden.
Ich denke, ich kann die Funktionen Max(), Min() verwenden ...
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine ZahlIch verstehe das Problem, auf das Sie hinweisen.Obwohl der Anzeigebaum angibt, dass es vier separate Achsen gibt, scheint JMP sie tatsächlich nur als zwei Achsen zu behandeln.Um Ihren Wünschen so nahe wie möglich zu kommen, muss man also die Daten für Größe und Gewicht auf der Grundlage des Geschlechtswerts in vier Spalten aufteilen und dann die vier Variablen separat darstellen.

Hier ist die JSL
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
dtSplit = dt << Split(
Split By( :sex ),
Split( :height, :weight ),
Remaining Columns( Drop All ),
Sort by Column Property
);
gb = dtSplit << Graph Builder(
Variables( Y( :height F ), Y( :weight F ), Y( :height M ), Y( :weight M ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 11 ) ),
Caption Box( Y, Legend( 15 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 12 ) ),
Caption Box( Y, Legend( 16 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 3 ),
Caption Box( Y, Legend( 17 ), Summary Statistic( "Std Dev" ) ),
Points( Y, Legend( 18 ) )
),
Elements(
Position( 1, 4 ),
Points( Y, Legend( 14 ) ),
Caption Box( Y, Legend( 19 ), Summary Statistic( "Std Err" ) )
),
SendToReport(
Dispatch(
{},
"weight F",
ScaleBox,
{Min( 49.5141101773061 ), Max( 150.319351489306 ), Inc( 20 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
18,
Properties( 0, {Line Color( 21 )}, Item ID( "height M", 1 ) )
), Legend Model(
14,
Properties( 0, {Line Color( 19 )}, Item ID( "weight M", 1 ) )
)}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {11, [0], 12, [1], 18, [3], 14, [2]} ),
Position( {0, 1, 3, 2} )}
)
)
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( :Height F ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( :Weight F),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 4 )] << Add Ref Line(
Col Std Dev( :Height M ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 5 )] << Add Ref Line(
Col Std Dev( :Weight M ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine Zahl@txnelson
Danke für deine Antwort.
Im folgenden Skript werden alle STD-Werte in Gruppe F als STD-Werte der Gruppe M geschrieben.
Wie können wir sie in zwei Gruppen aufteilen?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb = Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ), Group Y( :sex ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
)
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 4 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 5 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine ZahlWie in meiner vorherigen Antwort zu sehen ist, müssen Sie zum Hinzufügen einer Referenzlinie lediglich die Nachricht „<< Referenzlinie hinzufügen“ an die Achse übergeben, zu der Sie die Referenzlinie hinzufügen möchten:
Report( gb )[AxisBox( 2 )] << Add Ref Line( Col Std Dev( :Height ), "Solid", "Medium Dark Red", "Std Dev mean", 2 );
Um herauszufinden, auf welche Achse man richtig zeigen muss, muss man sich die Baumstruktur der Ausgabe des Graph Builder ansehen.Klicken Sie dazu mit der rechten Maustaste auf das graue Dreieck neben der Überschrift „Graph Builder“ und wählen Sie „
Bearbeiten==>Baumstruktur anzeigen


Anschließend können Sie das Diagrammfenster am Baumstrukturfenster ausrichten und auf das Element im Diagrammfenster klicken, dessen Baumstruktur Sie sehen möchten. JMP wechselt dann zu dieser Struktur im Baumstrukturfenster

Wie hier zu sehen ist, ist die Achse für die Spalte „Höhe“ für Sex=="F" AxisBox(2)
Wenn Sie auf jede der betreffenden Achsen klicken, sehen Sie, auf welches Achsenfeld Sie zeigen müssen, um eine Referenzlinie hinzuzufügen.Die letzte Achse der Frage, Spalte Gewicht, für Sex=="M" ist:

Jetzt muss nur noch die JSL erweitert werden, um die Referenzlinien für alle 4 Achsen zu erstellen und in jeder der Add Ref Line-Nachrichten den korrekten Wert für die Platzierung der Referenzlinie zu berechnen.Hier sind die 4 Codezeilen zum Hinzufügen von Ref-Zeilen:
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "F", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 2 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Height, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Report( gb )[AxisBox( 3 )] << Add Ref Line(
Col Std Dev( If( :sex == "M", :Weight, . ) ),
"Solid",
"Medium Dark Red",
"Std Dev mean",
2
);
Beachten Sie, dass in diesem Fall neben der Messspalte auch die Spalte „Geschlecht“ für die Berechnung der Standardabweichung berücksichtigt werden musste.
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine Zahl@txnelson Danke für Ihre schnelle Antwort!
Ich habe noch eine Frage.
Wenn die Daten wie im Bild unten nach Geschlecht gruppiert wurden, wie kann ich damit umgehen?
Betreff: Wie kann ich eine Referenzlinienänderung vornehmen? keine ZahlHier ist eine einfache Änderung an Ihrem Skript, die für jede Spalte (:Height,:Weight) eine Referenzlinie beim Wert von Std Dev zeichnet.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ) ;
gb=Graph Builder(
Size( 1056, 825 ),
Variables( Y( :height ), Y( :weight ) ),
Elements(
Position( 1, 1 ),
Points( Y, Legend( 7 ) ),
Caption Box( Y, Legend( 13 ), Summary Statistic( "Std Dev" ) )
),
Elements(
Position( 1, 2 ),
Points( Y, Legend( 8 ) ),
Caption Box( Y, Legend( 14 ), Summary Statistic( "Std Dev" ) )
)
);
report(gb)[AxisBox(2)]<<ADD ref="" line=""></ADD>