Hallo alle,
Ich habe in der letzten Woche oder so an dieser Idee gearbeitet und @gzmorgan0 hat mir bei diesem Beitrag geholfen
https://community.jmp.com/t5/Discussions/creating-an-index-for-columns-to-point-to-the-graph/mp/71555#M35439
Angenommen, ich durchlaufe 5 kontinuierliche Spalten und 2 nominale Spalten und zeichne eine Einweganalyse von 10 Spalten (z. B. nw2). Ich erhalte den p-Wert und andere Parameter in einer Tabelle. Ich möchte, dass die Tabelle in aufsteigender Reihenfolge nach p-Wert sortiert wird. Kann ich meine Tabelle in einem neuen Fenster (nw1) haben und jede Zeile (da die Zeile sowohl die entsprechende X- als auch die Y-Achse in Bezug auf das Diagramm hat) in der Tabelle sollte auf das entsprechende Diagramm in nw2 verweisen? Ist die Tabellenbox (Datentabellen-Spaltenbox) die richtige Strategie oder gibt es eine andere Funktion, die ich prüfen sollte?
Ich freue mich über jeden Input/Kommentar/Vorschlag.
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
ynames = {"weight", "height"};
xnames = {"sex", "age"};
pnames = {};
nw2 = New Window( "Custom Display", vl = V List Box() );
nw2 << Size Window( 724, 395 );
For( i = 1, i <= N Items( ynames ), i++,
For( j = 1, j <= N Items( xnames ), j++,
Insert Into( pnames, ynames[i] || " by " || xnames[j] );
vl << Append(
Oneway(
Y( Column( dt, ynames[i] ) ),
X( Column( dt, xnames[j] ) ),
Box Plots( 1 ),
Comparison Circles( 0 ),
X Axis Proportional( 0 ),
Means Diamonds( 1 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway",
OutlineBox,
{Set Title( Eval Insert( "^ynames[i]^ ^xnames[j]^ Comparison Report" ) )}
)
)
)
);
); //end for j
); //end for i
plb = List Box( pnames, width( 100 ), maxSelected( 1 ) );
nw1 = New Window( "Filter", plb );
_xx = (nw2 << Child) << xpath( "//OutlineBox[@helpKey='Oneway Report']" );
plb << Set Function(
Function( {this},
k = (this << get Selected Indices)[1];
nw2 << Scroll Window( _xx[k] );
)
);
nw1 << Bring Window to Front;
nw2 << Bring Window to Front;
nw1 << Move Window( 10, 10 );
nw2 << move Window( 180, 10 );
//Add a try in case the window is already closed
nw2 << On close( Try( nw1 << Close Window() ) );Ja, ich dachte, ein Einzelfenster-Viewer wäre am besten und hatte das gleiche Problem, dass das Bildlauffenster bei einem verschachtelten Bildlauffeld nicht funktionieren würde. Ich habe es JMP gemeldet, damit die Entwickler über das Problem informiert sind.Der JMP-Support hat das beigefügte Skript bereitgestellt, das die Verwendung von << Get Offset zum zuverlässigeren Ermitteln der Position demonstriert.
gzmorgan scheint Ihre Frage beantwortet zu haben, aber Sie haben mir eine private Nachricht geschickt, also dachte ich darüber nach, das Scroll-Feld näher zu erläutern.Im Anhang finden Sie eine Bearbeitung der gzmorgan-Implementierung zur Verwendung eines Fensters statt zwei.
Der Nachteil des Bildlauffelds besteht darin, dass es den Befehl << Scroll Window() aus irgendeinem Grund nicht unterstützt.
Das hat etwas mehr gedauert, als ich dokumentiert habe.Ein Beispielskript ist beigefügt.
Ich verstehe Ihre Frage nicht wirklich, Ihr Code scheint zu tun, was Sie verlangen.Allerdings würde ich niemals zulassen, dass ein Fenster die Ergebnisse eines zweiten Fensters beeinflusst.Ich würde vorschlagen, dass Sie sowohl Ihre Filter- als auch Ihre Einwegdiagramme im selben Fenster platzieren und sie mit einem Bildlauffeld teilen können.