No se puede resaltar en Graph Builder y seleccionar las filas correspondientesHola a todos,
Tengo varios gráficos en el generador de gráficos de varias tablas de datos. 2 cosas a tener en cuenta:
- Todos fueron creados usando JSL.
- La mayoría de ellos se han agregado a una ventana JMP, excepto el último.
Por alguna razón, solo puedo resaltar datos en el último gráfico del generador de gráficos (y seleccioné las filas correspondientes en su tabla).
¿Por qué es eso y hay alguna forma de solucionarlo?
Gracias.
Tabla de datosOtrosecuencias de comandosRe: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesEso puede suceder fácilmente. Cambie su JSL de referencia a
gb = dt << constructor de gráficos (.........)Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesHola @txnelson .
Eso es exactamente lo que estoy haciendo.
Funcionó. Lo agregué directamente la segunda vez que creé los gráficos en lugar de agregarlo en una función separada. Creo que el problema podría deberse al hecho de que todos los objetos del generador de gráficos provenían de varias tablas de datos y usaban variables en ellas, por lo que al volver a ejecutar la expresión, JMP no sabía qué tablas usar para cada generador de gráficos y las variables eran ' definido.
¡Gracias por la ayuda!
Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesSu GBList contiene punteros a la salida de una salida ya ejecutada.Lo que debe agregarse es Graph Builder (..........) JSL, por lo que se ejecuta dentro del objeto Display.
Si estoy leyendo su código de esqueleto correctamente, lo que creo que está haciendo es recopilar información de los diferentes constructores de gráficos y luego usar esa información para ordenar la salida.Si este es el caso, y necesita que la salida sea dinámica, en lugar de estática, es posible que deba ejecutar los gráficos por segunda vez dentro de la ventana de visualización de salida.Lo he hecho muchas veces en el pasado.También tomo un enfoque ligeramente diferente a veces.Si está utilizando el R2 para realizar el pedido, lo que sugiero es que utilice la plataforma de detección de respuestas para obtener los valores de R2 deseados y, a partir de ese resultado, generar los resultados deseados en función de ese pedido.
Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesTraté de agregar el propio objeto del generador de gráficos, pero eso da este error:
Not a display in access or evaluation of 'Append' , Append( ReorderedPlotBoxList[i] ) /*###*/
Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesEl problema es que está agregando el Informe para el Generador de gráficos, no el Objeto del Generador de gráficos.Eche un vistazo a los resultados del siguiente script y verá que el informe adjunto se convierte en un gráfico estático, donde el objeto incrustado no
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
mygb = Expr(
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Line( X, Y, Legend( 7 ) ) )
);
);
mygb;
nw = new window("Report",);
nw << append(report(gb));
nw << append(mygb);
Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesHola @txnelson y @Thierry_S .
Gracias por la respuesta. Por alguna razón, mi respuesta anterior se marcó como abuso, así que aquí hay una reescritura:
Desafortunadamente, no puedo compartir el guión completo o las tramas debido a la NDA, pero puedo intentar brindar más detalles:
Estoy creando las ventanas usando esta función:
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
Title,
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
Luego creo objetos Graph Builder en un bucle for y los agrego a una lista:
GB = GraphBuilder(...);
InsertInto(GBList, GB);
Y luego los adjunto a un objeto de visualización en la ventana (el cuadro de alineación) llamando a esta función:
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);Llamo a la función con la lista del generador de gráficos y una lista de valores R^2.
AppendPlotBasedOnDescendingValue(GBList, R2List, LineupBox);
Funciona, pero no puedo seleccionar/resaltar los datos en el generador de tablas/gráficos.
Gracias.
Re: No se puede resaltar en Graph Builder y seleccionar las filas correspondientesGracias @txnelson y @Thierry_S por la respuesta
Desafortunadamente, no puedo compartir el guión completo o las tramas debido a razones de NDA, pero puedo proporcionar más detalles cuando sea posible.
Así es como se ve la ventana:
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
"Outline Box 1",
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, OutLineBox1);
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
Llamo a esta función varias veces para varios tipos de gráficos y la agrego al Cuadro de alineación de esta manera:
Cree varios objetos de GB e insértelos en una lista de GB
GB = DT << GraphBuilder(...);
InsertInto(GBList, GB);
Agréguelos en función de algún valor (R ^ 2 en mi caso):
AppendPlotBasedOnDescendingValue(GBList, R2List, LineUpBox1);
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);
Se agrega correctamente, pero simplemente no puedo seleccionar/resaltar en las tablas/gráficos de datos.
Entonces a tu pregunta
@Thierry_S Creo que estoy usando un elemento gráfico (Lineup Box)
Gracias.
Re: No se puede resaltar en el Generador de gráficos y seleccionar las filas correspondientesHola,
Como @txnelson mencionado, es casi imposible diagnosticar su problema con la información que proporcionó. Lo único que puedo pensar en esta etapa es un posible problema con la forma en que agrega el gráfico a la nueva ventana: ¿utiliza una captura de elemento gráfico o agrega el gráfico completo a su nueva ventana? El primero eliminará la conexión de regreso a la mesa.
Mejor,
TSRe: No se puede resaltar en el Generador de gráficos y seleccionar las filas correspondientesNo ha proporcionado suficiente información (detalles) para permitir realmente un diagnóstico real. Una copia del script y una imagen de la salida realmente ayudarían.