Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenUm einen Schritt eines Arbeitsablaufs zu beschleunigen, versuche ich, ein Skript zu schreiben, das die Achsengrenzen aller Y-Achsen in einem Graph Builder automatisch auf bestimmte Werte (Quantile) setzt, die aus den angezeigten Daten berechnet werden können.
Der Plan war:
- Holen Sie sich die Achsenbeschriftungen
- Berechnen Sie die gewünschten Grenzwerte, indem Sie die entsprechenden Spalten in der Datentabelle verwenden
- Legen Sie die Grenzen entsprechend fest.
Dies stellt sich zunächst als komplizierter heraus als erwartet, da ein lokaler Datenfilter verwendet werden kann, Beschriftungen geändert werden können usw.
Daher möchte ich die unterschiedlichen Y-Werte für jede Achse lieber direkt vom Graph Builder erhalten. Wie erhalte ich die Werte von bestimmten Achsen?
ZB wenn ich habe
R = Current Report();
AB = R[axisbox(2)] ;
ab_min = -100; // How to access the value list containing all the values that are used by default to compute axis limits of AB here?
ab_max = 100;
AB << Min(ab_min);
AB << Max(ab_max);
Durch die Verwendung des „Kreuzes“ hatte ich einige FrameBoxen, konnte aber nicht herausfinden, wie ich daraus Werte erhalten sollte.
Irgendwelche Ideen oder eine bessere Möglichkeit, das zu machen?
Danke Robbb
MassenanpassungBetreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenSo etwas sollte Ihnen die Markierungswerte liefern
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
frame = Report(gb)[FrameBox(1)];
frames = Report(gb) << XPath("//FrameBox");
marker_segs = (frames << Find Seg(Marker Seg(1)));
xm = marker_segs << Get X Values;
ym = marker_segs << Get Y Values;
show(xm, ym);
Exportieren von X- und Y-Werten (Koordinaten) aus dem Graph Builder, sobald JMP automatisch Schwerpunktpunkte für ein Polygon findet
So erhalten Sie Legendenfeldinformationen wie Farbe und Markierungstyp
Betreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenDerzeit sehe ich keine zuverlässige Möglichkeit, die auf einer Achse dargestellte Spalte oder den Spaltennamen vom Diagrammersteller abzurufen. Die einzige Möglichkeit, die mir einfällt, besteht darin, die Achsenbeschriftung abzurufen. Diese wurde jedoch möglicherweise vom Benutzer geändert, sodass der Text nicht mehr der Spaltenname ist. Darüber hinaus können Spalten direkt im Graph Builder transformiert/geändert werden. Wenn eine solche Spalte auf einer Achse aufgetragen würde, könnte ich diese Spalte überhaupt nicht in der Datentabelle finden. Und ja, wenn ich die richtige Spalte in der Datentabelle gefunden hätte, müsste ich die Filtereinstellungen aus dem lokalen Datenfilter anwenden.
Wenn ich die geplotteten Datenwerte irgendwie direkt vom Achsen-/Grafik-Builder zurückbekommen könnte, wäre es unwichtig, welche Art von Spalte geplottet wird, welcher Filter angewendet wird, welche Beschriftungen der Benutzer geändert hat und was sonst noch schief gehen und mein Skript kaputt machen könnte .
Betreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenWarum sollte es für Sie nicht funktionieren, einfach die Werte aus der Datentabelle abzurufen?Wenn Zeilen von der Analyse ausgeschlossen wurden oder ein lokaler Datenfilter angewendet wurde, müssten einfach diese Bedingungen angewendet werden.
names default to here(1);
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
allHeights = dt:height << get values;
// or if you want just the unique values of the column height, this
// is my prefered way to get them
uniqueHeights = associative array(dt:height<<GET values=""> </GET>
Betreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenHallo @jthi , Hi @txnelson
Danke, aber ich glaube, wir haben ein kleines Missverständnis.
Ich möchte nicht die aktuellen Min- und Max-Werte von allen Y-Achsen erhalten. Ich möchte alle entsprechenden y-Werte der angezeigten Daten erhalten, um geeignetere Grenzwerte zu berechnen.
Wenn beispielsweise für eine y-Achse 1000 Werte angezeigt werden, möchte ich eine Liste oder einen Vektor dieser 1000 y-Werte erhalten.
Betreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenDie folgende JSL gibt eine Liste aller AxisBox()s für den aktuellen Bericht zurück.Sowohl AxisBox(1) als auch AxisBox(2).Was also getan werden kann, ist, die Einträge 2, 4, 6 usw. zu verarbeiten, um auf alle AxisBox(2)s zuzugreifen
r=current report();
yMaxs = ((r[1]<<TOP parent=""></TOP>
Betreff: Skript zum Festlegen aller Achsengrenzen in einem Diagrammersteller auf Werte, die aus den angezeigten Daten berechnet werdenWürde so etwas funktionieren? Verwenden Sie XPath, um alle Achsenfelder abzurufen und dann herauszufinden, welche Y-Achsen sind. Danach sollten Sie in der Lage sein, sie zu manipulieren
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
axisboxes = Report(gb) << XPath("//AxisBox");
/*y-axis seems to be even numbers*/
yaxis = axisboxes[2::N Items(axisboxes)::2];
ymin = yaxis << get min;
ymax = yaxis << get max;
show(ymin, ymax);