Graph Builder y=x-Linie nicht an bestimmten Graphen gebundenIch versuche, im Graph Builder mit JSL eine Linie mit perfekter Korrelation (y=x) für das Streudiagramm zu erstellen. Siehe unten anhand der Beispieldaten von Restaurant Tips als Beispiel.

Wenn ich dies manuell mache, ist hier das von JMP generierte Skript:
Graph Builder(
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :Bill Amount ), Y( :Tip Amount ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Tip Amount", ScaleBox,
{Min( -0.062875 ), Max( 72.9215829464286 ), Inc( 10 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Y Function( x, x );
)}
)
)
);Beachten Sie, dass dies an dieses bestimmte Diagramm gebunden ist.
Wie kann ich dies universell machen, sodass es auf jedes Diagramm angewendet werden kann, an dem ich gerade arbeite? Mein ultimatives Ziel ist es, daraus ein Add-In oder besser noch eine Schaltfläche im Graph Builder zu machen (falls das möglich ist), um diese Linie für jedes Diagramm zu zeichnen, an dem ich arbeite.
Es gibt ein altes Video und einige alte Informationen in der Community dazu, aber alles, was ich finden konnte, ist an ein bestimmtes Diagramm gebunden. Ich glaube, ich verstehe Frame Box vielleicht nicht sehr gut. Ich habe einige Skriptvarianten mit Frame Box ausprobiert, bin aber nicht weitergekommen.
Wie immer vielen Dank für jede Hilfe.
Automatisierung und SkriptingMac OSBetreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebundenMeine spezielle Anwendung besteht darin, dass ich häufig Daten von redundanten Sensoren vergleichen muss, die im Idealfall perfekt redundante Daten liefern sollten. Natürlich kommt die Realität dazwischen und dies ist häufig nicht der Fall. Ein Streudiagramm mit der Linie y=x ist daher meine schnelle Möglichkeit, die Daten der beiden Sensoren auszuwerten.
Betreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebundentolle Idee – ich benutze sie sooo oft!
-> Ich werde es zur Graph Builder-Symbolleiste hinzufügen : )
fbs = current report() << xpath("//FrameBox");
fbs << Add Graphics Script(
Pen Color( "gray" );
Y Function( x, x );
)
Betreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebundenMit dieser Methode können Sie tun, was Sie möchten
names default to here(1);
dt =
// Open Data Table: Restaurant Tips.jmp
// → Data Table( "Restaurant Tips" )
Open( "$SAMPLE_DATA/Restaurant Tips.jmp" );
Graph Builder(
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :Bill Amount ), Y( :Tip Amount ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Tip Amount", ScaleBox,
{Min( -0.062875 ), Max( 72.9215829464286 ), Inc( 10 ), Minor Ticks( 1 )}
)
)
);
rpt = Current Report();
rpt[framebox( 1 )] << Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Y Function( x, x );
);

Betreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebundenDanke @hogi und @txnelson . Ihr seid mir wieder einmal zu Hilfe gekommen.
@hogi Leider arbeite ich auf einem Mac und es sieht nicht so aus, als ob Ihr Add-In auf einem Mac funktioniert. Das ist schade. Es sieht großartig aus.
@txnelson (oder eigentlich einer von euch beiden...) Ich habe eine Frage zu dem von Ihnen verwendeten Befehl „Add Graphics Script“, der dieselbe Syntax wie das generierte JMP-Skript hat. Wenn es nicht zu sehr ins Detail geht, was ist der Zweck des Arguments 2? Die Dokumentation zum Befehl „Add Graphics Script“ ist sehr lückenhaft.
Danke noch einmal.
Betreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebundenEs ist die Position des Skripts, so dass Sie die Reihenfolge erzwingen können, in der sie gezeichnet werden
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
1,
Fill Color("Red");
Circle(
20,
{20, 20},
{50, 50},
{70, 80},
"FILL"
)
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
2,
Circle(
20,
{40, 20},
{40, 50},
{40, 80},
"FILL"
)
);
Wie Sie im Anpassungsmenü sehen

Bearbeiten: Reihenfolge grafischer Elemente festlegen (jmp.com)
Betreff: Graph Builder: y=x-Linie nicht an bestimmten Graphen gebunden
@hogi schrieb:
tolle Idee – ich benutze sie sooo oft!
-> Ich werde es zur Graph Builder-Symbolleiste hinzufügen : )
ab sofort verfügbar:
