Usaría el generador de gráficos en combinación con el control deslizante para cambiar la apariencia de la gráfica.En el siguiente ejemplo, creo una ventana con un mapa y un cuadro deslizante para cambiar de forma interactiva la escala de los colores. Usaría el script para crear diferentes ventanas (por supuesto, incluso con diferentes variables, pero en el ejemplo no se necesitan estas cosas).Funciona solo para la última ventana creada, a pesar de que intento asignar las variables usando espacios de nombres. Lo intenté de otra manera, pero todo sin éxito. ¿Alguien puede ayudar?
Names Default To Here(1);
dtable= Open("$SAMPLE_DATA/SAT.jmp");
name="Map";
For(k=1, k<=10, k++,
If(Namespace Exists(Eval("ns" || name || Char(k))),
//If(k = 10,
// hanlde the max number of allowed namespaces
//);
,
name= name || char(k);
nsRef = New Namespace(Eval("ns" || name ));
Break();
)
);
nsRef << Insert("column", "% Taking (2004)");
nsRef << Insert("min", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("max", col max(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmin", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmax", col max(column(dtable, "% Taking (2004)")));
datacolumn=column(dtable, nsRef:column );
nsRef << Insert("slider1",
slider box(nsRef:min,nsRef:max,nsRef:slmax,
title= Current Window() << Get Window Title;
ns = NameSpace(Eval("ns" || title));
slmin=ns:slmin;
slmax=ns:slmax;
scale=Matrix( {slmin,slmax} );
scale=scale`;
ns:gb <<SENDTOREPORT></SENDTOREPORT>
Te estás moviendo en la dirección correcta. Necesita un espacio local y, dependiendo de la tarea, aquí hay varias opciones que recomendaría:
- Dado que solo está cambiando la leyenda, y cada GB estará en una ventana separada, un método simple para hacer esto es usar el alcance de la ventana, el espacio de nombres de la ventana ventana:slider1 = SliderBox() . Ver el guión adjunto.
- Si solo se cambia la leyenda y tiene varios GB en la ventana, utilice un < para el cuadro deslizante que utiliza una referencia relativa al GB correspondiente. Si GB y HListBox (TextBox, Sliderbox) están anidados en un VListBox, la función sería algo así como (this<< parent)<
- Suponga que tiene varios GB con diferentes Y pero con la misma X. Si desea limitar X o excluir una fila para Y1 pero no para Y2, entonces cada GB debe tener su propio Cuadro de contexto de filtro de datos() , filtro de datos locales.
Con suerte, la secuencia de comandos adjunta que utiliza el alcance de la ventana satisfará sus necesidades actuales.