Eine Teilmenge aus einem interaktiven Diagramm erstellen?Hallo. Ich versuche, ein interaktives Diagramm zu erstellen, um Daten aus einer Übersichtstabelle anzuzeigen. Das Ziel besteht darin, ein Liniendiagramm mit Punkten zu erstellen, auf die geklickt werden kann, um Daten von diesem bestimmten Punkt zu unterteilen. Im folgenden Skript habe ich beispielsweise ein Diagramm einer Übersichtstabelle nach Alter der Beispieltabelle „Große Klasse“. Der Benutzer sollte in der Lage sein, auf einen Punkt im Diagramm zu klicken und automatisch eine Teilmengentabelle mit allen Daten von diesem Punkt aufzurufen.
Das Problem, auf das ich stoße, ist, dass ein einzelner Klick nicht funktioniert, weil keine Daten ausgewählt wurden. Der Benutzer muss auf einen Punkt doppelklicken, um die Daten auszuwählen, und dann erneut klicken, um den Teilmengenausdruck auszuführen. Gibt es eine Möglichkeit, dies zu tun, ohne einen Dreifachklick ausführen zu müssen? Danke schön.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dtSummary = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
output table name( "dtSummary" )
);
gbExpr = Expr(
gb = Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :N Rows ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-1], 4, [-1]} ), Position( {-1, -1} )}
)
)
);
);
ExprA = Expr(
dtSubset = dt << Subset( Output Table( "Subset" ), Selected Rows( 1 ), Selected Columns( 0 ));
dtSummary << Clear Selected Rows;
);
GraphWindow = New Window( "Graph" );
GraphWindow << Append(
MouseBox(
gbExpr,
<<SETCLICKENABLE></SETCLICKENABLE>Betreff: Eine Teilmenge aus einem interaktiven Diagramm erstellen?In JMP 15.0 wurde den Hover-Beschriftungen eine Menüoption „Subset RMB“ hinzugefügt, die genau das tut, was Sie beschrieben haben.
Jetzt sind alle Diagramme mit dieser integrierten Funktionalität ausgestattet.
Ich habe es gerade ausprobiert und die Ergebnisse sind genau die gleichen wie bei der Ausführung Ihres Skripts.
Beachten Sie, dass keine separate Übersichtstabelle erstellt werden muss – die neue Funktion „versteht“ die Aggregationen, die von Diagrammen wie Liniendiagrammen, Balkendiagrammen usw. durchgeführt werden.
Mit anderen Worten: Die Teilmenge basiert auf einem lokalen Datenfilter, der aus der Definition des visuellen Elements unter dem Zeiger abgeleitet wird.
Diese Technik unterstützt auch die Erstellung von Graphlets und deren Start in neuen Fenstern (auch Drilldown genannt).
Weitere Einzelheiten finden Sie unter https://www.jmp.com/content/dam/jmp/documents/en/support/jmp15/using-jmp.pdf , Seite 512.

Betreff: Eine Teilmenge aus einem interaktiven Diagramm erstellen?Eine Alternative zu einer Mouse Box besteht darin, einen Row State Handler auf die Datentabelle anzuwenden. Es ist ein Klick erforderlich, um die Teilmenge zu erstellen (was ärgerlich sein kann, wenn Sie versuchen, mehrere Punkte durch Ziehen auszuwählen, da möglicherweise viele unbeabsichtigte Teilmengen erstellt werden).
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dtSummary = dt << Summary(Group(:age));
gbExpr = Expr(
gb = Graph Builder(
Show Control Panel(0),
Variables(X(:age), Y(:N Rows)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(4)))
)
);
ExprA = Expr(
dtSubset = dt << Subset(Selected Rows(1));
dtSummary << Clear Select;
);
f = Function({a}, ExprA);
rs = dt << make row state handler(f);
GraphWindow = New Window("Graph", gbExpr);
Betreff: Eine Teilmenge aus einem interaktiven Diagramm erstellen?Perfekt. Sehr hilfreich.Vielen Dank.
Betreff: Eine Teilmenge aus einem interaktiven Diagramm erstellen?Während Sie die ganze Arbeit erledigen, um ein Skript zu erstellen, das Mausefallen verwendet, können Sie meines Erachtens mit einem sehr einfachen Skript erreichen, was Sie wollen, wenn Sie bereit sind, die Standardmausaktionen zum Auswählen der Datenpunkte zu verwenden und dann einfach zu klicken auf eine hinzugefügte Schaltfläche, um die Auswahl zu treffen

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);
subsetButton = Button Box( "Click to Create a Subset of Selected Points",
If( N Rows( dt << get selected rows ) > 0,
dt << subset( selected rows( 1 ), selected columns( 0 ) )
)
);
Report( gb )["Graph Builder"] << append( subsetButton );