Casella di controllo per attivare/disattivare il jitter su Generatore di graficiCiao,
Vorrei avere un oggetto casella di controllo sopra la vista del generatore di grafici per attivare/disattivare la separazione dei punti sovrapposti (jitter). So che questo può essere fatto dal pannello di controllo ma dal punto di vista della visualizzazione, voglio mantenere il pannello di controllo chiuso.
Esempio di script di seguito che crea elementi di controllo per il jitter nella parte superiore del grafico. Nonostante i miei migliori sforzi, non riesco a attivare la casella di controllo per attivare il jitter; Non so quale sia il modo corretto per inviare l'aggiornamento al rapporto.
Chiedo il tuo aiuto con la sintassi.
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>SceneggiaturaRe: Casella di controllo per attivare/disattivare il jitter su Graph BuilderBella idea, non ovvio come farlo, in attesa di una risposta.
Re: Casella di controllo per attivare/disattivare il jitter su Graph BuilderLa manipolazione degli elementi è un pasticcio per quanto ne so e diventa ancora più disordinato quando hai il raggruppamento. Ecco perché cerco di (di solito) evitarlo e rifare il grafico. Ecco un modo in cui potresti provare a utilizzare Aggiorna elementi per modificare il jitter
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>
Altre funzioni utili potrebbero essere Aggiungi elementi e Rimuovi elementi, vedi anche questo post Aggiornamento dell'istruzione Element di Graph Builder
Re: Casella di controllo per attivare/disattivare il jitter su Graph BuilderGrazie Jarmo,
La tua soluzione (Aggiorna elementi) funziona bene, molto bene.
Di seguito è riportata un'ulteriore versione modificata per ottenere anche lo slider e le caselle numeriche che aggiornano il grafico.
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>