Case à cocher pour activer/désactiver la gigue sur Graph BuilderBonjour,
J'aimerais avoir un objet case à cocher au-dessus de la vue du générateur de graphiques pour activer/désactiver la séparation des points qui se chevauchent (gigue). Je sais que cela peut être fait à partir du panneau de contrôle mais du point de vue de la visualisation, je souhaite garder le panneau de contrôle fermé.
Exemple de script ci-dessous qui crée des éléments de contrôle pour la gigue au-dessus du graphique. Malgré tous mes efforts, je n'arrive pas à cocher la case pour activer ou désactiver la gigue ; Je ne sais pas quelle est la bonne façon d'envoyer une mise à jour au rapport.
Je demande votre aide pour la syntaxe.
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>Personnalisation de masseRe : Case à cocher pour activer/désactiver la gigue sur Graph BuilderMerci Jarmo,
Votre solution (Mettre à jour les éléments) fonctionne bien, très bien.
Vous trouverez ci-dessous une version encore modifiée pour obtenir également le curseur et les cases numériques mettant à jour le graphique.
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>
Re : Case à cocher pour activer/désactiver la gigue sur Graph BuilderLa manipulation des éléments est un gâchis à ma connaissance et cela devient encore plus compliqué lorsque vous avez un regroupement. C'est pourquoi j'essaie (généralement) de l'éviter et de simplement refaire le graphique. Voici une façon d'essayer d'utiliser Mettre à jour les éléments pour modifier la gigue
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>
D'autres fonctions utiles peuvent être Ajouter des éléments et Supprimer des éléments, voir également cet article Mise à jour de l'instruction Element de Graph Builder
Re : Case à cocher pour activer/désactiver la gigue sur Graph BuilderBonne idée, pas évident de savoir comment faire, j'attends avec impatience une réponse.