Kontrollkästchen zum Ein-/Ausschalten von Jitter im Graph BuilderHallo,
Ich hätte gerne ein Kontrollkästchenobjekt über der Diagrammerstellungsansicht, um die Trennung überlappender Punkte (Jitter) ein- und auszuschalten. Ich weiß, dass dies über das Bedienfeld erfolgen kann, aber aus Sicht der Visualisierung möchte ich das Bedienfeld geschlossen lassen.
Beispielskript unten, das Kontrollelemente für Jitter über dem Diagramm erstellt. Trotz aller Bemühungen kann ich das Kontrollkästchen zum Umschalten des Jitters nicht aktivieren. Ich weiß nicht, wie ich das Update richtig an den Bericht senden soll.
Ich bitte um Ihre Hilfe bei der Syntax.
Names Default To Here(1);
dt= Open("$SAMPLE_DATA/Big Class.jmp");
gb=Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements(
Points( X, Y )
)
);
jitter = 1;
jitter_elements=H List Box(
cb=Check Box(
{"Jitter enabled"},
If(cb<<GET> gb << SendToReport(Elements(Points(Jitter( "Positive Grid" ), Jitter Limit( jitter )))), // This is not correct but something like this (maybe)
gb << SendToReport(Elements(Points(Jitter( "None" )))) // This is not correct but something like this (maybe)
);
),
sb = Slider Box( 0, 2, jitter,
neb << set( jitter );
),
neb = Number Edit Box(jitter,
<<SETFUNCTION></SETFUNCTION></GET>MassenanpassungBetreff: Kontrollkästchen zum Ein-/Ausschalten von Jitter im Graph BuilderDanke Jarmo,
Ihre Lösung (Elemente aktualisieren) funktioniert gut, sehr gut.
Nachfolgend finden Sie eine weiter modifizierte Version, um auch den Schieberegler und die Zahlenfelder zur Aktualisierung des Diagramms zu erhalten.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
jitter = 0.2;
New Window("",
V List Box(
H List Box(
cb = Check Box(
{"Jitter enabled"},
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("None")});
)
),
sb = Slider Box(0.1, 0.2, jitter,
neb << set(jitter);
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
);
),
neb = Number Edit Box(
jitter,
<<SETFUNCTION>0.2, jitter=0.2);
sb << inval;
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
);
neb << set(jitter);
)
)
)
),
gb = dt << Graph Builder(Show Control Panel(0), Variables(X(:height), Y(:weight)), Elements(Points(X, Y)));
)
);</SETFUNCTION>
Betreff: Kontrollkästchen zum Ein-/Ausschalten von Jitter im Graph BuilderDas Manipulieren von Elementen ist meines Wissens eine Sauerei und wird noch chaotischer, wenn man Gruppierungen hat. Deshalb versuche ich es (normalerweise) zu vermeiden und die Grafik einfach zu wiederholen. Hier ist eine Möglichkeit, wie Sie mit Update Elements den Jitter ändern können
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
jitter = 1;
New Window("",
V List Box(
H List Box(
cb = Check Box(
{"Jitter enabled"},
If(cb << Get() == 1,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("Positive Grid"), Jitter Limit(jitter)});
,
Report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), X, Y, Legend(3), Jitter("None")});
)
),
sb = Slider Box(0, 2, jitter, neb << set(jitter)),
neb = Number Edit Box(
jitter,
<<SETFUNCTION></SETFUNCTION>
Weitere nützliche Funktionen könnten „Elemente hinzufügen“ und „Elemente entfernen“ sein, siehe auch diesen Beitrag Aktualisieren der Element-Anweisung des Graph Builder
Betreff: Kontrollkästchen zum Ein-/Ausschalten von Jitter im Graph BuilderGute Idee, nicht klar, wie man das macht, freue mich auf eine Antwort.