Hallo,
Ich habe ein Skript, das in einem Diagrammersteller Mittelwerte (Linien) mehrerer Metriken anzeigt und außerdem ein Graphlet mit einzelnen Metriken (Punkten) generiert.
[1] - Ich möchte die Beschriftungen aus dem Graphlet entfernen, bisher ohne Erfolg.

In diesem Beispiel (Skript unten) möchte ich die Beschriftungen „Position2 und Mean()“ entfernen und nur das Diagramm (mit seinen eigenen Notationen) behalten.
Laut der Skriptanleitung scheint ein Gridlet (S. 704) erforderlich zu sein, aber alle meine Versuche schlugen fehl.
[2] - wenn die Linien im ersten Diagramm nahe beieinander liegen (z. B. :Speed und :Height), verschwindet das Graphlet tendenziell, wenn ich die Maus bewege und versuche, darauf zu klicken, um den Graph Builder mit den einzelnen Daten zu öffnen. Gibt es eine Option „Klicken“, um es direkt zu öffnen, anstatt „Über Linie fahren, dann über Graphlet fahren, dann klicken“? (Die Skriptanleitung P696 erwähnt die Option „Klicken“, aber sie ist nicht klar)
Können Sie mir dabei helfen?
Dank im Voraus
-Prediger
Siehe unten meine letzte "stabile" Version
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
)
}
)
)
);
Show( gb_expr );
Eval( gb_expr );Hover-Labels sind höchstwahrscheinlich das, wonach Sie suchen: https://www.jmp.com/support/help/en/18.1/index.shtml#page/jmp/hover-labels.shtml# . Der Zweck von Click besteht darin, auszulösen, wenn der Benutzer auf das Miniaturbild auf dem Hover-Label klickt.
Ich habe vor ein paar Wochen herausgefunden, wie man unerwünschte Teile des Hover-Labels entfernen kann. Hier ist eine Möglichkeit, das zu tun.
Names Default To Here( 1 );
dt = Open( "$sample_data\Football.jmp" );
y_values = {"Height", "Weight", "Fat", "Speed"};
RelEventCol = "Position2";
variables_expr = Eval Expr( Variables( X( As Column( dt, Expr( RelEventCol ) ) ) ) );
Show( variables_expr );
For Each( {y_col}, y_values,
temp_expr = Expr( Y() );
Insert Into( temp_expr, Name Expr( As Column( dt, y_col ) ) );
Insert Into( temp_expr, Name Expr( Position( 1 ) ) );
Insert Into( variables_expr, Name Expr( temp_expr ) );
);
Show( variables_expr );
gb_expr = Expr(
Graph Builder( Show Control Panel( 0 ) )
);
temp_expr3 = Expr( Line() );
Insert Into( temp_expr3, Name Expr( X ) );
For Each( {y_col, idx}, y_values,
temp_expr2 = Expr( Y() );
Insert Into( temp_expr2, idx );
Insert Into( temp_expr3, Name Expr( temp_expr2 ) );
);
Show( temp_expr3 );
Insert Into( temp_expr3, Name Expr( Legend( 7 ) ) );
Show( temp_expr3 );
temp_expr4 = Expr( Elements() );
Insert Into( temp_expr4, Name Expr( temp_expr3 ) );
Show( temp_expr4 );
Insert Into( gb_expr, Name Expr( variables_expr ) );
Insert Into( gb_expr, Name Expr( temp_expr4 ) );
Insert Into(
gb_expr,
Name Expr(
Dispatch( {}, "Graph Builder", FrameBox,
{Set Graphlet(
Picture(
dt << Graph Builder(
Size( 800, 700 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( As Column( dt, Expr( RelEventCol ) ) ), Y( Column( local:_measurements ) ) ),
Elements( X, Y )
);
),
Skip Filters( 1, Column( dt, Name Expr( RelEventCol ) ) )
), Set Gridlet(
Expunge(
{{Matcher( "Position2" )}, {Matcher( "Mean(Height)" )}, {Matcher( "Mean(Weight)" )}, {Matcher( "Mean(Fat)" )},
{Matcher( "Mean(Speed)" )}}
)
) //Removes these from the default gridlet
}
)
)
);
Show( gb_expr );
Eval( gb_expr );Anstelle der Liste mit „Mean(...“-Werten sollte wahrscheinlich dies verwendet werden. Dadurch wird alles entfernt, was „Mean“ im Namen enthält.
{Matcher( Pat Regex( "Mean" ) )}
Vielen Dank an alle für Ihre Hilfe.
Es funktioniert gut:)
- Prediger