Establecer el título de los gráficos del generador de gráficosHe escrito un script en JMP 18 que crea gráficos de líneas en filas de 3 usando 'generador de gráficos', 'grupo de ajuste'. Básicamente, las tablas contienen valores de medición para 'analitos' en múltiples 'biorreactores' en múltiples 'puntos de tiempo'. En JMP 18 obtengo un título para cada gráfico, pero un colega que usa JMP 17 descubre que falta el título, lo que hace que el gráfico no tenga sentido. ¡Estoy completamente perplejo! ¿Alguna sugerencia sobre lo que puedo hacer para agregar un título?
Aquí está el guión:
newWindow = New Window(reportName, tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :Dilution Factor, :Type ) ),
Mode( Select( 1 ), Show( 1 ), Include( 1 ) )
),
V List Box(
dataTables[i] << Fit Group(
Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :Time point ),
Y( :"Mean(Value)"n ),
Overlay( :Vessel )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :Analyte )
),
<<{Arrange in Rows( 3 )}
)
)
)
)
)
)
);
tb << set selected(1);In JMP 17 the title highlighted with the red arrow is missing for each chart:
Automatización y scriptingRe: Establecer el título de los gráficos del generador de gráficosPara descartar configuraciones extrañas en las preferencias, ¿podría comparar el resultado de:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "test",
dt << Fit Group(
Graph Builder(
Ignore Platform Preferences(1), // next step: disable this line
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Line( X, Y, ) ),
By( :age )
),
<<{Arrange in Rows( 3 )}
)
);
Próximo paso: deshabilitar la línea y verificar nuevamente.
Si no hay ningún problema con el conjunto de datos de muestra, tenemos que encontrar el problema en sus datos.
-> ¿Es posible compartir?
Re: Establecer el título de los gráficos del generador de gráficosSu filtro de datos está fallando en JMP17
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
/*dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),*/
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
Si desea utilizar << Ajustar grupo (no estoy seguro si debería usarse ya que no está diseñado para el generador de gráficos aunque funciona, tiene algunas opciones: arreglar los títulos después de la creación o crearlos de manera diferente.
Es probable que esto no sea muy sólido, pero puede dar una idea de lo que podría hacer (usar los valores de la columna en lugar de confiar en la expresión Donde es probablemente la opción más sólida).
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
wait(0);
If(Word(1, JMP Version(), ".") == "17",
gb_obs = nw << XPath("//OutlineBox[@helpKey = 'Graph Builder']");
For Each({gb_ob}, gb_obs,
gb = gb_ob << Get Scriptable Object;
s = gb << get script;
w = Extract Expr(s, Where(Wild List()));
a = Substitute(Char(Arg(w, 1)), "==", "=");
gb << Title("Graph Builder " || Substr(a, 2))
);
);
Editar: Los títulos se romperán si se utiliza el filtro de datos.
Re: Establecer el título de los gráficos del generador de gráficosPuede ser más fácil usar métodos separados para diferentes versiones, ya que la forma de trabajar por columnas se modificó en JMP18 y no todos funcionan con ambos.
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
If(Word(1, JMP Version(), ".") == "17",
Lineup Box(N Col(3),
gb = Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
,
gb = Graph Builder(
Size(300, 300),
Group Options(Layout("Arrange in Rows", N Across(3))),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
)
)
)
)
);
Si desea que sus usuarios puedan cambiar la cantidad de elementos que hay en cada fila, puede agregar un cuadro de esquema y una secuencia de comandos.
Re: Establecer el título de los gráficos del generador de gráficosComo señala @jthi , el filtro de datos es una de las fuentes de las diferencias. La forma en que Fit Group responde al filtro de datos ha cambiado en JMP 18+.
Otra gran diferencia entre JMP 17 y JMP 18 es la incorporación de la Plataforma de grupo para subgrupos. En JMP 18, esta nueva plataforma tiene opciones de diseño similares a las de Fit Group. En JMP 17, se podía reemplazar Fit Group por un Cuadro de alineación para el diseño. Al combinar los dos, este script funciona razonablemente bien para mí en ambos casos:
dataTables = EvalList({
Open("$SAMPLE_DATA/Big Class.jmp"),
Open("$SAMPLE_DATA/Big Class Families.jmp")
});
newWindow = New Window("Reports", tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :sex ) )
),
V List Box(
Line Up Box(NCol(3),
dataTables[i] << Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :age ),
Group Options( Layout( "Arrange in Rows", N Across( 3 ) ) )
)
)
)
)
)
)
)
);
tb << set selected(1);
El diseño entre 17/18 será diferente: en JMP 17, LineUpBox administra la cuadrícula, mientras que en JMP 18, la Plataforma de grupo administra el diseño y todos los LineUpBox solo tienen 1 hijo.
Su otra opción podría ser utilizar la función Ajustar en Graph Builder en lugar de utilizar Por, pero eso le daría ejes y leyendas compartidos, lo cual posiblemente no desee.
-Y
Re: Establecer el título de los gráficos del generador de gráficosOtra opción: dejar que el colega actualice a JMP18.1 y use la nueva opción de página que se introdujo con JMP18:)
Bono para él:
Ya no hay problemas con Buscar - ¿o no encontrarlo?

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :weight ),
Page( :age, Levels per Row( 3 ) ),
Overlay( :sex )
),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Re: Establecer el título de los gráficos del generador de gráficosGracias por su ayuda con esto: tomó algunos días probarlo en JMP 17, pero funciona bien.
Re: Establecer el título de los gráficos del generador de gráficosMuchas gracias por esta sugerencia. Terminé usando el Line Up Box tanto para JMP 17 como para JMP 18.