Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte anHallo,
Ich versuche, mit Graph Builder eine Teilmenge von Punkten mit Liniensegmenten zu verbinden und nur Markierungen für die anderen Punkte anzuzeigen. Mein Diagramm sieht dann ungefähr so aus (die Linien wurden hier zur Veranschaulichung manuell in ein Bild eingefügt):

Ich habe versucht, eine separate Spalte zu verwenden, um die Overlay-Funktion zu nutzen. Damit lassen sich tatsächlich separate Linien für separate Punktgruppen zeichnen. Es gelang mir jedoch nicht, die Linien zu entfernen und nur Markierungen für eine einzelne Punktgruppe zu belassen (oder umgekehrt).
In der JMP-Tabelle trage ich die Punkte, die mit einer Linie verbunden werden sollen, als separate 4 Punkte ein. Idealerweise sollte der letzte dieser 4 Punkte mit dem ersten dieser 4 Punkte verbunden sein.
Die JMP-Datei (JMP 18, reguläre Version, nicht PRO) ist beigefügt.
Alle Vorschläge und Kommentare sind sehr willkommen.
Danke schön!
Wladimir
Datenexploration und -visualisierungBetreff: Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte an
Ich habe dies interaktiv erstellt
- Ich habe der Datentabelle eine zusätzliche Overlay-Zeile hinzugefügt, um die Verbindungslinie hinzuzufügen und dort zu enden, wo sie begonnen hat

- Ich habe dann die Overlay_column in die Farb-Dropbox gezogen
- Ich habe dann eine Linie zum Diagramm hinzugefügt, die 2 Linien anzeigte

- Ich wollte die schwarze Linie nicht, also habe ich die Linienfarbe für die schwarze Linie einfach auf Weiß gesetzt

- Dadurch sahen die Markierungen für die Punkte der nicht überlagerten Daten komisch aus. Das liegt daran, dass die frühere schwarze Linie über den Punkten angezeigt wird.
- Um die schwarzen Punkte über die jetzt weißen (für den Benutzer unsichtbaren) Linien zu verschieben, habe ich mit der rechten Maustaste auf das Diagramm geklickt und „Anpassen“ ausgewählt.

- Ich habe dann den Marker 0 ausgewählt und mit dem Abwärtspfeil den schwarzen Marker nach unten über die Linie (0) hinaus verschoben.

- Das Ergebnis war die endgültige Grafik

Hier ist das JSL, das das Diagramm generiert
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Ex ),
Y( :Gxy ),
Overlay( :overlay_column ),
Color( :overlay_column )
),
Elements(
Points( X, Y, Legend( 5 ) ),
Line( X, Y, Legend( 6 ), Row order( 1 ) )
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
5,
Properties(
0,
{Line Color( 0 ), Marker( "FilledCircle" )},
Item ID( "0", 1 )
),
Properties( 1, {Marker( "Circle" )}, Item ID( "1", 1 ) )
), Legend Model(
6,
Properties( 0, {Line Color( 2 )}, Item ID( "0", 1 ) )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Reorder Segs( {1, 2, 5, 6} )} )
)
);
Es gibt andere Möglichkeiten, dies zu handhaben. Hier ist eine einfache JSL-Methode, die Add Graphic Script verwendet, um die Linie zu zeichnen

Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :Ex ), Y( :Gxy ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Gxy", ScaleBox,
{Min( 0.781114518510881 ), Max( 3.84890945699133 ), Inc( 0.5 ),
Minor Ticks( 0 )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "Red" );
Line( {5, 1}, {5.5, 3.5}, {10, 3}, {11, 1.5}, {5, 1} );
)}
)
)
);
Es sind keine Overlay-Spalten und -Zeilen erforderlich
Betreff: Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte anHey @VladimirB ,
Ich könnte etwas in der gewünschten Richtung erreichen, aber dieser Ansatz ist sehr umständlich, da Sie die Zeilen korrekt anordnen müssen, um sicherzustellen, dass die Punkte wie gewünscht verknüpft sind. An dieser Stelle ist es also nicht so, dass Sie einfach die Punkte auswählen und sie eine schöne geschlossene Form bilden. Da Ihre Daten in Ihrem Beispiel jedoch korrekt angeordnet sind, erfüllt dies Ihren Zweck.

Ich habe zwei neue Spalten (Spalte 4 und Spalte 5) erstellt, die nur die Werte der ausgewählten Zeilen zurückgaben, und dann am Ende eine Dummy-Zeile hinzugefügt, die es Spalte 4 und Spalte 5 ermöglichte, den niedrigsten ausgewählten Wert zurückzugeben, wodurch die Form geschlossen wurde.


Ich habe Spalte 4 als zweite Y-Achse und Spalte 5 als zweite X-Achse hinzugefügt und das Punktelement so eingestellt, dass es in der Zeilenreihenfolge nur Gxy und Ex und das Linienelement nur Spalte 4 und Spalte 5 berücksichtigt.
Wie gesagt, es ist ein bisschen klobig, aber es bringt Sie ans Ziel und könnte Sie oder einen anderen Benutzer dazu inspirieren, etwas noch Besseres zu machen!
Steve
Betreff: Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte anHey @VladimirB ,
Ich wollte etwas Interaktives erstellen, um verbundene Punkte zu erstellen, wie Sie es sich gewünscht haben. Deshalb habe ich dieses Skript entwickelt, um Punkte interaktiv verknüpfen zu können. Im Anhang finden Sie ein Skript, mit dem Sie Punkte auswählen und durch Liniensegmente verbinden können.
Wenn Sie es ausführen, werden Sie gefragt, welche Spalten als Y- und X-Achsenspalten verwendet werden sollen

Wenn Sie auf „OK“ klicken, werden drei Spalten erstellt und anschließend wird ein neues Fenster geöffnet:

An dieser Stelle können Sie das Tabellenskript ausführen

was Ihnen dies gibt

Jetzt können Sie einen Punkt auswählen und dann im Fenster der Benutzeroberfläche auf „Wert festlegen“ klicken.

Sie können dann einen neuen Punkt auswählen und die Schaltfläche „Wert festlegen“ erneut drücken, um die beiden Punkte zu verbinden

tun Sie dies, bis alle Ihre Punkte ausgewählt sind

Sobald Sie alle Punkte ausgewählt haben, klicken Sie auf die Schaltfläche "Fertig", um die Linie mit dem Startpunkt zu verknüpfen

Wenn Sie einen Punkt verpasst haben, können Sie ihn auswählen und auf "Wert festlegen" drücken, wodurch er für eine Sekunde durcheinander aussieht

Sie können das Problem jedoch mit der Schaltfläche „Punkt auf halbem Weg einfügen“ beheben. In diesem Fall sollte Punkt 8 eigentlich nach Punkt 5 liegen. Wenn Sie auf die Schaltfläche klicken, geben Sie 5 ein und drücken OK.

und Bam! die Punkte werden neu geordnet

Wenn Sie von vorne beginnen müssen, drücken Sie die Schaltfläche "Werte löschen"
Ich hoffe, das hilft! Außerdem bin ich mir sicher, dass dies nicht für viele verschiedene Anwendungen geeignet ist. Daher ist die Wahrscheinlichkeit hoch, dass es einen Fehler gibt, wenn der Workflow nicht wie gerade beschrieben abläuft.
Hey @hogi ,
Ich bin sicher, Sie könnten dies viel nützlicher machen als ich.
Steve
Betreff: Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte anVielen Dank, TXNELSON!
Du hast eine sehr schöne Lösung bereitgestellt! Mit dem tollen Skript! Ich werde es auf jeden Fall ausprobieren!
Ich schätze Ihre schnelle und detaillierte Antwort mit allen Richtlinien sehr!
~ Wladimir
Betreff: Graph Builder: Verbinden Sie eine Teilmenge von Punkten mit Liniensegmenten und zeigen Sie nur Markierungen für die anderen Punkte anVielen Dank, SHAMPTON82!
Du hast eine sehr schöne Lösung bereitgestellt! Ich werde es ausprobieren
Ich schätze Ihre schnelle und detaillierte Antwort mit allen Richtlinien sehr!
Und Sie haben auch eine interaktive Lösung erstellt!
Das ist für mich sehr lehrreich!
Danke schön!
~ Wladimir