Die "Größe" des Graph Builders auf die Achsen skalierenAngenommen, ich habe einen Datensatz mit Fehlern auf der Oberfläche hergestellter Produkte, der wie folgt aussieht:
| SN | X (cm) | Y(cm) | Durchmesser (cm) |
| 0001 | 2.3 | 1.15 | 0,04 |
| 0001 | 2.7 | 0,44 | 0,12 |
| 0001 | 1.5 | 2.6 | 0,35 |
| 0002 | 5.4 | 1.9 | 0,17 |
| 0002 | 3.1 | 4.1 | 0,59 |
Gibt es im Graph Builder, wenn ich die SN mit einem lokalen Datenfilter filtere und X(cm)->X, Y(cm)->Y und Durchmesser(cm)->Größe zeichne, eine Möglichkeit, die resultierenden Punktgrößen maßstabsgetreu in die Zeichnung einzuzeichnen?
Datenexploration und -visualisierungBetreff: Graph Builders „Größe“ auf Achsen skaliereneinfache Lösung, aber nicht perfekt skaliert

So lässt sich das Problem durch ein wenig Herumklicken lösen:
Im Diagrammersteller setze ich X und Y in die Felder der X- und Y-Achse und füge dann SN zur Farbrolle und Durchmesser zur Größenrolle hinzu.
So würde das Skript aussehen:
Graph Builder(
Size( 409, 391 ),
Variables(
X( :"X(cm)"n ),
Y( :"Y(cm)"n ),
Color( :SN ),
Size( :"Diameter(cm)"n )
),
Elements( Points( X, Y, Legend( 9 ) ) )
);
Betreff: Graph Builders „Größe“ auf Achsen skalierenSieht so aus, als hätten Sie den Vorgang in der Frage gut reproduziert. Ich hatte gehofft, dass jemand eine Umschalt-Klick-Option oder etwas anderes kennt, das bei der Skalierung helfen würde.
Betreff: Die "Größe" des Graph Builders auf die Achsen skalierenIch denke, Sie müssen dies möglicherweise mit einem Grafikskript tun. Unten finden Sie eine sehr schnelle und einfache Lösung, die eine Vorstellung davon geben kann, was Sie möglicherweise tun könnten
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("SN", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2])),
New Column("X(cm)", Numeric, "Continuous", Set Values([2.2999999999999998, 2.7000000000000002, 1.5, 5.4000000000000004, 3.1000000000000001])),
New Column("Y(cm)", Numeric, "Continuous", Set Values([1.1499999999999999, 0.44, 2.6000000000000001, 1.8999999999999999, 4.0999999999999996])),
New Column("Diameter(cm)",
Numeric,
"Continuous",
Set Values([0.040000000000000001, 0.12, 0.34999999999999998, 0.17000000000000001, 0.58999999999999997])
)
);
gb = dt << Graph Builder(
Size(518, 454),
Show Control Panel(0),
Lock Scales(1),
Variables(X(:"X(cm)"n), Y(:"Y(cm)"n), Size(:"Diameter(cm)"n)),
Elements(Points(X, Y, Legend(5))),
Local Data Filter(Add Filter(columns(:SN), Modeling Type(:SN, Nominal)))
);
frame = Report(gb)[FrameBox(1)];
Eval(EvalExpr(
frame << Add Graphics Script(
cur_gb = Expr(Report(gb));
fb = cur_gb[FrameBox(1)];
ms = fb << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
For(i = 1, i <= N Items(xs), i++,
dt = cur_gb << Get Data Table;
m_rows = dt << Get Rows Where(:"X(cm)"n == xs[i] & :"Y(cm)"n);
diam = dt[m_rows, "Diameter(cm)"][1];
Circle({xs[i], ys[i]}, diam/2);
);
);
));

Lesen Sie auch, wie sich der Radius des Kreises verhält : https://www.jmp.com/support/help/en/18.0/#page/jmp/graphics-functions.shtml?os=win&source=application#ww2626013
Betreff: Die "Größe" des Graph Builders auf die Achsen skalierenDanke, @jthi – Sie beherrschen offensichtlich JSL auf beeindruckende Weise!
Das scheint eine Funktion zu sein, die JMP haben sollte, und es scheint, als ließe sie sich leicht in die Markierungsgrößeneinstellungen integrieren (zumindest aus Sicht der Benutzeroberfläche). Ich werde es der Wunschliste hinzufügen.
Betreff: Graph Builders „Größe“ auf Achsen skalierenWunschlistenartikel hier gepostet:
Graph Builder: Achsenabhängige Größenanpassung von Punkten mit der Drop-Zone „Größe“ aktivieren – JMP-Benutzer-Community
@jthi – ist es ok, wenn ich Ihr Beispielbild oben in das Wunschlistenelement kopiere/einfüge?
Betreff: Graph Builders „Größe“ auf Achsen skalierenNatürlich. Sie könnten es ein wenig modifizieren, um das Argument „FILL“ im Kreis zu verwenden, sodass es ungefähr so aussehen würde (es wäre vielleicht eine gute Idee, die Legende auszublenden, wenn Sie dies tun, da die Kreise die Größeninformationen enthalten und nicht die darunterliegenden Markierungen).

Betreff: Die "Größe" des Graph Builders auf die Achsen skalierenIch kann der Diskussion nicht ganz folgen, dachte aber, dass ein paar Anmerkungen vielleicht relevant sein könnten.
- Es gibt einen Befehl „Größe auf isometrisch anpassen“ unter Rechtsklick > Diagramm > Größe/Skalierung > Größe auf isometrisch anpassen. Damit wird die Größe des Diagramms so angepasst, dass die X- und Y-Werte pro Pixel gleich sind. Dieser Befehl bleibt jedoch nicht bestehen.
- Die Größenvariable wird als Kreisfläche und nicht als Durchmesser dargestellt.
- Vor einigen Versionen haben wir die Funktion „Marker Draw Expo“ zu Markern und Graph Builder hinzugefügt (genannt „Shape Expressions“ unter dem roten Dreieckmenü „Punkte“).

Graph Builder(
Size( 496, 501 ),
Show Control Panel( 0 ),
Lock Scales(1),
Variables( X( :"X(cm)"n ), Y( :"Y(cm)"n ) ),
Elements(
Points( X, Y, Legend( 5 ),
Set Shape Expression(
Expr(
Function( {this seg, this row, x, y, pixel size, row state},
{r = :"Diameter(cm)"n / 2},
Oval( x - r, y + r, x + r, y - r, 1 )
)
)
)
)
),
Local Data Filter( Add Filter( columns( :SN ), Modeling Type( :SN, Nominal ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Size To Isometric} )
)
);