Casella di controllo per attivare/disattivare il jitter nel Costruttore di graficiCiao,
Mi piacerebbe 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.
Script di esempio riportato di seguito che crea elementi di controllo per il jitter nella parte superiore del grafico. Nonostante i miei migliori sforzi, non riesco a selezionare la casella di controllo per attivare/disattivare il jitter; Non so qual è il modo corretto per inviare l'aggiornamento al report.
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>Personalizzazione di massaRi: Casella di controllo per attivare/disattivare il jitter nel Costruttore di graficiGrazie Jarmo,
La tua soluzione (Aggiorna elementi) funziona bene, molto bene.
Di seguito è riportata la versione ulteriormente 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>
Ri: Casella di controllo per attivare/disattivare il jitter nel Costruttore di graficiPer quanto ne so, manipolare gli elementi è un disastro e diventa ancora più complicato quando si effettua il raggruppamento. Ecco perché cerco (di solito) di evitarlo e di rifare semplicemente il grafico. Ecco un modo in cui potresti provare a utilizzare Update Elements per modificare 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 del Costruttore di grafici
Ri: Casella di controllo per attivare/disattivare il jitter nel Costruttore di graficiBella idea, non è ovvio come farlo, in attesa di una risposta.