Betreff: So fügen Sie eine dynamische horizontale Linie durch eine gemeinsame y-Achse zu einem Variabilitätsdiagramm hinzu, das durch zwei Bedingungen durch JSL geteilt wirdBetreff: So fügen Sie eine dynamische horizontale Linie durch eine gemeinsame y-Achse zu einem Variabilitätsdiagramm hinzu, das durch zwei Bedingungen durch JSL geteilt wirdBeim VariabilityPlot ist zu beachten, dass jede niedrigstwertige Gruppe auf der verborgenen x-Achse eine Breite von genau 1 hat, beginnend bei Null.Dies macht es ziemlich einfach, die relevanten Zeilen hinzuzufügen.
Die einzige leichte Komplikation besteht darin, herauszufinden, wie viele Untergruppen jede der größeren Gruppen enthält, aber die Zusammenfassungsfunktion der Datentabelle kann dabei helfen.
Hier ist ein Beispielskript, das das tut, was Sie fragen:

names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Cars.jmp" );
rpt = dt << Variability Chart(
Y( :Head IC),
X( :Make, :Model ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Where( :NAME("D/P") == "Driver" & :Protection == "manual belts" ),
);
//find groupings:
rows = dt << Get Rows Where( :NAME("D/P") == "Driver" & :Protection == "manual belts" );
subt = dt << Subset( Rows( rows ), Columns( :Make, :Model, :Wt ), Not Linked, Private );
sumt = subt << Summary( Group( :Make, Model ), Mean( :Wt ), Statistics Column Name Format( "Column" ), Link to Original Data Table( 0 ), Private );
Close( subt, No Save );
subt = sumt << Summary( Group( :Make ), Mean( :Wt ), Statistics Column Name Format( "Column" ), Link to Original Data Table( 0 ), Private );
Close( sumt, No Save );
category number = [=>];
category average = [=>];
For Each Row( subt,
category number[:Make] = :N Rows; // each least-significant category in a VariabilityPlot is exactly X=1 width on the hidden x-axis, starting at zero
category average[:Make] = :Wt
);
Close( subt, No Save );
tree = rpt << Report;
Eval( Eval Expr(
tree[FrameBox( 1 )] << Add Graphics Script(
Local( {values = Expr( category average ), numbers = Expr( category number ), i, items, sum = 0},
items = categories << Get Keys;
Pen Size( 2 );
Pen Color( "Blue" );
Summation( i = 1, N Items( items ),
Line( Eval List( {sum, values[items[i]]} ), Eval List( {sum += categories[items[i]], values[items[i]]} ) );
0
)
)
)
) )Betreff: So fügen Sie eine dynamische horizontale Linie durch eine gemeinsame y-Achse zu einem Variabilitätsdiagramm hinzu, das durch zwei Bedingungen durch JSL geteilt wirdHallo,
Zunächst einmal vielen Dank für die Informationen sowie den Code. Ich versuche, Zeile für Zeile vorzugehen und zu erfahren, wie Sie dies geschrieben haben. Als ich das Skript ausführte, erhalte ich einen Fehler für die Zeile "Cagegories << Get Keys", wie es im Konsolenprotokoll zu sehen ist. Wissen Sie, wie Sie das beheben können oder ob es eine andere Variable sein soll?


Danke, ich weiß die Hilfe zu schätzen!
Betreff: So fügen Sie eine dynamische horizontale Linie durch eine gemeinsame y-Achse zu einem Variabilitätsdiagramm hinzu, das durch zwei Bedingungen durch JSL geteilt wirdTut mir leid - ich hatte die Variablennamen nur teilweise geändert.Der Name Kategorien gewesen sein sollte Zahlen .Ich habe oben per Antwort bearbeitet.
So fügen Sie über JSL eine dynamische horizontale Linie durch eine gemeinsame Y-Achse zu einem Variabilitätsdiagramm hinzu, das durch zwei Bedingungen geteilt wirdHallo zusammen,
Ich habe ein Variabilitätsdiagramm erstellt, das durch zwei Bedingungen aufgeteilt ist. Dadurch erstellt jmp ein Diagramm mit einer gemeinsamen y-Achse. Mein Problem mit dieser gemeinsamen Y-Achse besteht darin, dass beim Hinzufügen einer horizontalen Linie diese über jede x-Teilung hinweg hinzugefügt wird, anstatt dass ich für jede Gruppe eine andere horizontale Linie haben kann. Ich habe mich gefragt, ob dies durch eine mögliche Schleife möglich ist, da der Wert der horizontalen Linie ein Wert aus der Originaldatentabelle sein soll.
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Cars.jmp" );
dt << Variability Chart(
Y( :Head IC),
X( :Make, :Model ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
By( :NAME("D/P"), :Protection )
);
Im Idealfall würde es basierend auf dem Wert in der Tabelle so aussehen.
Mein aktueller Versuch dazu ist:
for each( {bygroup, i}, value,
report(dt[i])[AxisBox(1)] << add ref line(value[i], "Dotted","Black", Char(value[i]))Um dies mit diesem Datensatz zu ermöglichen, wäre ich wirklich dankbar, wenn Sie die Spalte „:Wt“ verwenden könnten, um dies anzuzeigen. Danke schön!
Datenmischung und -bereinigungQualitäts- und Verfahrenstechnik