Ich zeichne ein CD- vs. Tiefendiagramm für insgesamt 8 Sätze im Beispiel (Aa, Ab, Ba, Bb …). Für jeden Test A–D gibt es zwei verschiedene „Positionen“ a und b.
Ich möchte speziell zwei Sätze auswählen und ein Deltadiagramm erstellen. Wenn ich beispielsweise Aa und Ba auswähle, werden die CD-Werte bei jeder Tiefe abgezogen und es sollte ein Diagramm „CD vs. Tiefe“ erstellt werden.
Kann ich das bei JMP machen? Ich habe versucht, das in Excel mit der xlookup-Funktion zu machen, aber da die Datenmenge riesig ist (über 30.000 Zeilen), ist es einfach zu langsam. Ich bin nicht sicher, ob ich das bei JMP machen kann.
Beispieldatensatz

Beispiel eines CD-vs.-Tiefendiagramms;

Mit Skripten ist das definitiv möglich, und vielleicht auch ohne Skripte, zumindest als Workflow. Können Sie einen Beispieldatensatz bereitstellen und können Sie nur zwei Paare gleichzeitig auswählen? Ist der Standort für ausgewählte Tests auch immer derselbe?
Sicher, hier ist die Beispieldatendatei.
Ich möchte den Deltawert zwischen zwei Paaren ermitteln, also würde ich zum Vergleich immer 2 auswählen.
Die Lage ist möglicherweise nicht dieselbe. Im realen Datensatz habe ich einige Proben, die mehrere Lagen haben. Ich muss auch Probe mit Probe und Lage mit Lage vergleichen. Zum Beispiel Probe Aa mit Probe Cb
Hier ist
Ist es in Ordnung, wenn nach Benutzerauswahlen eine neue Datentabelle erstellt wird? Meine Grundidee wäre mit Skripting:
- Fügen Sie Ihren Daten eine Sortierspalte hinzu
- Erstellen Sie eine Benutzeroberfläche, in der der Benutzer aus einer Liste auswählen kann, welche Kombinationen verglichen werden sollen.
- Der Benutzer drückt OK und eine neue Tabelle wird mit Daten für diese beiden Kombinationen erstellt
- Die Differenz wird berechnet
- Visualisieren Sie die Daten
Eine andere Möglichkeit, die mir einfällt, ist, die Daten aufzuteilen und alle Unterschiede in Spalten vorzuberechnen. Dann können Sie den Spaltenumschalter im Diagrammersteller verwenden, um zu ändern, was verglichen werden soll.
Ich wollte sehen, ob ich die Vergleichsbedingungen schnell ändern kann. Das scheint nicht so einfach zu sein.
Ich denke, das Berechnen aller Unterschiede würde nicht funktionieren, da so viele Datensätze vorhanden sind.
Danke für die Hilfe, ich muss noch ein bisschen nachdenken.
Außer dieser Aufteilung fallen mir nur Skriptoptionen ein. Ich betrachte JMP-Tabellen eher als Datenbanktabellen denn als Tabellenkalkulation, daher werden die Berechnungen (normalerweise) auf Zeilenebene und als Aggregationen durchgeführt. Wenn die Testanzahl für jedes der „Paare“ immer gleich ist, kann dies möglicherweise mit einigen Formelspalten und einem globalen Datenfilter erreicht werden, um die Auswahl der Optionen zu erleichtern.
Mit Skripten können Sie Dinge wie diese erstellen (hier fehlen einige Plausibilitätsprüfungen)
Names Default To Here(1);
dt = Current Data Table();
dt << New Column("Group", Character, Nominal, Formula(
"Test: " || :Test || " Location: " || :Location
));
Summarize(dt, groups = By(:Group));
dt_temp = New Table("TEMPTABLE",
Add Rows(5), // same as your group size
Compress File When Saved(1),
New Column("Depth",
Numeric,
"Continuous",
Values([0, 20, 40, 60, 80])
),
New Column("CD First",
Numeric,
"Continuous"
),
New Column("CD Second",
Numeric,
"Continuous"
),
New Column("CD diff",
Numeric,
"Continuous"
),
Invisible
);
update_expr = Expr(
Try(
first_group = (lb_first << get selected)[1];
second_group = (lb_second << get selected)[1];
first_cd = dt[dt << Get Rows Where(:Group == first_group), "CD (nm)"];
second_cd = dt[dt << Get Rows Where(:Group == second_group), "CD (nm)"];
dt_temp[0, "CD First"] = first_cd;
dt_temp[0, "CD Second"] = second_cd;
dt_temp[0, "CD Diff"] = Abs(second_cd - first_cd);
,
dt_temp[0, "CD First"] = [., . ,., ., .];
dt_temp[0, "CD Second"] = [., . ,., ., .];
dt_temp[0, "CD Diff"] = [., . ,., ., .];
);
);
nw = New Window("Demo",
H List Box(
Panel Box("Pick First Group",
lb_first = List Box(groups)
),
Panel Box("Pick Second Group",
lb_second = List Box(groups)
),
Data Table Box(dt_temp),
gb = dt_temp << Graph Builder(
Size(525, 454),
Show Control Panel(0),
Variables(X(:CD diff), Y(:Depth)),
Elements(Points(X, Y, Legend(11)), Line(X, Y, Legend(13)))
),
Panel Box("Actions",
Lineup Box(N Col(1),
Button Box("Cancel")
)
)
)
);
lb_first << Set Max Selected(1);
lb_second << Set Max Selected(1);
lb_first << Set Script(update_expr);
lb_second << Set Script(update_expr);
Eval(EvalExpr(
nw << On Close(
Close(dt_temp, no save);
)
));

Ich denke, Sie könnten Ihre Tabelle auch duplizieren, sodass Sie einen Self-Join mit „duplizierten“ Spalten durchführen, ihn nach Tiefe mit der Originaltabelle verknüpfen, Self-Joins entfernen, einen Gruppierungsselektor erstellen, eine Formel für Unterschiede erstellen und ein Diagramm erstellen können.

Und dies lässt sich in JMP problemlos automatisieren.
