Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Folgen Sie dem Skript unten.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
Wie schreibe ich JSL? Wie erhalte ich in der Grafik durch Klicken auf einen bestimmten Altersbalken diesen Alterswert? Und verwenden Sie diesen Wert, um nachfolgende Vorgänge auszuführen.
Danke!

Grundlegende Datenanalyse und ModellierungErgebnisse teilen und kommunizierenFrage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Wenn Sie auf das durch diesen Pfeil angezeigte Feld klicken, können Sie den Alterswert =14 erhalten?
Es handelt sich um einen linken Mausklick, nicht um Hover-Labels.
Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm???
frame = (p1 << report)[FrameBox( 1 )];
frame << Set Graphlet(
Picture(
dataage = Parse( age:_where );//??
d2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
d2 << Select Where( age == dataage );
d3 = d2 << Subset( Output Table( "test" ), Selected Rows( 1 ), selected columns( 0 ) );
Try( d3 << Delete Table Property( "Source" ) );
),
Reapply( 1 )
);
Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?
Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Wenn es mit Hover-Labels ausgelöst wird, warum kann es dann nur ausgelöst werden, um Big Class Families.jmp im Alter ==12 zu öffnen?
Danke!
txt = "a";
Set Clipboard( txt );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
,
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
Set Textlet(
Setup(
expr = Parse( local:_where );
a = local:_dataTable << Get Rows Where( expr );
Set Clipboard( a[1] );
local:r = local:_dataTable << Get Rows Where( expr );
),
Markup( "{local:r}rows" )
)
)
)
);
txt = Get Clipboard();
frame = (p1 << report)[FrameBox( 1 )];
frame << Set Graphlet(
Picture(
dataage = txt; //Parse( age:_where );//??
d2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
d2 << Select Where( age == dataage );
d3 = d2 << Subset( Output Table( "test" ), Selected Rows( 1 ), selected columns( 0 ) );
Try( d3 << Delete Table Property( "Source" ) );
),
Reapply( 1 )
);
Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible );
p1 = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
// this graphbuilder chart has multiple FrameBoxes. Get a list of them.
framelist = Report( p1 ) << XPath( "(//OutlineBox[text()='Graph Builder']//FrameBox)" );
// each framebox needs a graphis script with a Mousetrap to detect clicks.
For( iFrame = 1, iFrame <= N Items( framelist ), iFrame += 1,
frame = framelist[iFrame];
// the mousetrap needs to capture the iFrame value when it is
// built so it can report it later; use eval(evalexpr(...expr()...))
Eval(
Eval Expr(
frame << Addgraphicsscript(
Mousetrap(
{/*nothing on mouse drag, it happens a lot*/}//
, // but on mouse up, do something. MouseUp only happens once per click.
xx = x;
yy = y;
Show( xx, yy, Expr( iFrame ) );
// run your script here
)
)
)
);
);Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Danke Experten!
Sehr erstaunlich, ich habe xx-, yy- und Expr(iFrame)-Änderungen gesehen.

Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Aber warum funktioniert dieses Skript nicht in der chinesischen Version von JMP Pro 17.0?
win10
Danke!

Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Stellen Sie meine Version 17 von JMP auf Englisch ein.
Es funktioniert, aber es wird Chinesisch im Protokoll geben?
Danke!

Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?OK
Danke, Craige!
Sie haben mir die Problemlösung beigebracht, sodass ich nicht einfach Code kopiert habe.
Danke, Experten!

Frage: Wie implementiert JSL einen Click-to-get-Variablenwert in einem solchen Diagramm?Ich habe mir das geschnappt
"(//OutlineBox[text()='Graph Builder']//FrameBox)"
von hier
right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.right-click the outline triangle, choose Show Properties. Click one of the graphs.Klicken Sie mit der rechten Maustaste auf das Umrissdreieck und wählen Sie Eigenschaften anzeigen. Klicken Sie auf eine der Grafiken.
Sie könnten es vereinfachen
framelist = Report( p1 ) << XPath( "(//FrameBox)" );
Frage: Wie implementiert JSL einen Click-to-Get-Variablenwert in einem solchen Diagramm?Möchten Sie Skripte weiterhin durch Klicken auf Grafiken auslösen, nicht durch Hover-Labels?
Aber diese Grafik ändert ihre Form und ich weiß nicht, wie ich sie ändern muss, um JSL zu schreiben.
Ich musste wieder zu den Experten gehen.
Danke!

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Size( 632, 1152 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements(
Bar( X, Y, Legend( 5 ), Bar Style( "Stacked" ), Response Axis( "X" ), Summary Statistic( "Sum" ) )
)
);
gp = Report(p1)["Graph Builder",FrameBox(1)]
Eval(
Eval Expr(
gp << Addgraphicsscript(
Mousetrap(
{},
a0 = Expr( iFrame );
dt << Select Where( :height == a0 );
dt << Select Columns( "height" );
d3 = dt << Subset( Output Table( "test" ), Selected Rows( 1 ), columns( height ) );
)
)
)
);Frage: Wie implementiert JSL einen Click-to-Get-Variablenwert in einem solchen Diagramm?und wenn du zu faul bist, in die Bars zu gehen - einfach
- Fügen Sie ein HeatMap-Diagramm hinzu
- mit deaktivierten x- und y-Variablen
- und Transparenz auf 0 gesetzt:
Frage: Wie implementiert JSL einen Click-to-Get-Variablenwert in einem solchen Diagramm?Für diejenigen, die zu faul zum Klicken sind – oder zu faul, die Ausdrucksbehandlung zu verwenden: Verwenden Sie den Bildteil des Hover-Labels.
Die Reaktion erfolgt sofort (viel schneller als die Zeit, die dauert, bis das Hover-Label erscheint).
dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible );
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :age ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Response Axis( "X" ), Summary Statistic( "Sum" ) ) )
);
fbs = Report( gb ) << XPath( "//FrameBox" );
For Each( {fb}, fbs,
fb << Set Graphlet( Picture( Caption( Char( myAge = :age[local:_firstRow] ) ) ) )
);Frage: Wie implementiert JSL einen Click-to-Get-Variablenwert in einem solchen Diagramm?