¿Cómo tener un gráfico preestablecido para el eje de actualización del generador de gráficos al volver a ejecutarlo?Hola a todos,
Ejecutando JMP/JMP Pro en máquinas con Windows 11.
Tengo curiosidad por saber cómo solucionar un tipo de problema muy específico y hacerlo automáticamente (no manualmente). Como ejemplo, estoy usando la tabla de datos de muestra de Air.jmp para mostrar el problema en cuestión. Adjunté una copia de los archivos con el script para mostrar el problema.
Tengo una tabla de datos donde le agrego datos diariamente (a veces semanalmente) y tengo un script integrado en la tabla de datos para trazar datos versus fecha. Para imitar esto, dividí la tabla de datos de Air.jmp en dos mitades e hice el gráfico del generador de gráficos y luego concatené lo "nuevo" (segunda mitad de los datos) con la primera mitad de la otra tabla y volví a ejecutar el script.
Idealmente, me gustaría obtener un resultado en el que el eje x de la fecha del generador de gráficos se escale automáticamente a la fecha más reciente, como este:

En su lugar, obtengo un gráfico donde solo se actualiza al valor de cuando guardé la última versión de ese script de creación de gráficos en la tabla de datos. Entonces, la salida se ve así:

Esto no sucede cuando simplemente graficas los puntos de datos y no modificas el incremento del eje. El incremento predeterminado en el eje para este conjunto de datos (la primera mitad) es de 2 años. Después de agregar la segunda mitad de los datos y volver a ejecutar el script en la tabla de datos, restablece el valor predeterminado a 5 años y grafica todos los datos.
Sin embargo, si cambia el incremento predeterminado a 1 mes, por ejemplo, y guarda el script en la tabla de datos (primera mitad), luego agrega los nuevos datos y vuelve a ejecutar el script, la configuración del eje se mantiene igual que la original. script: no se actualiza para incluir los nuevos datos. La gran diferencia en el script es el comando SendToReport:
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min( 1597574016 ), Max( 1925078400 ), Interval( "Month" ), Inc( 1 ),
Minor Ticks( 1 )}
)
)En este comando, existen configuraciones de fecha Min() y Max() que se modifican según el rango de fechas existente de la tabla de datos original. No estoy seguro de por qué existe esta limitación y no se actualiza para reflejar las nuevas fechas que se agregan a una tabla de datos y el script se vuelve a ejecutar.
¿Hay alguna manera de solucionar esto manteniendo el intervalo Mes y también anidando el eje x para que los meses también se agrupen en años? Después de agregar nuevos datos a la tabla y volver a ejecutar el script, me gustaría que el nuevo gráfico use las configuraciones Min() y Max() de la tabla de datos más reciente, no de la original.
Esperemos que haya una solución fácil para esto. De lo contrario, creo que enviaré una solicitud de lista de deseos para que esto se cambie para permitir que las entradas Min() y Max() para el eje se actualicen automáticamente con los valores actuales dentro de la columna relevante de la tabla de datos.
¡Gracias de antemano por cualquier idea o comentario!
DS
Combinación y limpieza de datosExploración y visualización de datosLa personalización en masaRe: ¿Cómo tener un gráfico preestablecido para el eje de actualización del generador de gráficos al volver a ejecutarlo?Hola @jthi ,
¡Gracias, eso fue suficiente! Prefiero usar Expr(Col Min( )) y Expr(Col Max( )) en los argumentos Min() y Max() para el generador de gráficos. Y, muy bien, JMP hará el relleno por usted en cada extremo del gráfico, que de alguna manera debe escalarse según el tamaño de la escala de tiempo de su gráfico, como parece con este conjunto de datos, rellena 366 días.
¡Gracias por la rápida respuesta!,
DS
Re: ¿Cómo tener un gráfico preestablecido para el eje de actualización del generador de gráficos al volver a ejecutarlo?Creo que si está de acuerdo con tener lugares vacíos en la trama, podría eliminar el mínimo y el máximo del informe de envío.
Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)

U otra opción es calcularlos con un script y luego agregarlos con eso (y es posible que aún tenga que reescalar un poco si JMP decide agregar valores vacíos).
Eval(EvalExpr(
Current Data Table() << Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min(Expr(Col Min(:date))), Max(Col Max(col max(:date))), Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)
));
