Soy nuevo en la creación de scripts y tengo problemas para crear uno que etiquete los picos y valles de los datos.
El objetivo es etiquetar todos los valles tras detectar el primer pico. Intento simplificarlo creando un script que grafica los datos y etiqueta todos los picos y valles para facilitar el análisis de datos a mi equipo. He intentado seguir las instrucciones anteriores, pero parece que no funciona.
Intenté explorar todas las soluciones existentes para esto, pero tuve problemas para implementar una solución que funcionara para mí.
Sus datos parecen ser de tipo carácter, lo que requiere al menos cambiarlos a numéricos/continuos. ¿Podría usar sus datos, crear un gráfico y marcar lo que le interesa encontrar/detectar? Normalmente, puede encontrar picos/valles combinando retardo/diferencia y quizás algunas sentencias condicionales.

dt = Open( "$ESCRITORIO/Muestra.jmp" );
valor_máximo = Col Máximo(Columna(dt, "Calor"));
total_filas = N Fila(dt);
Time_col = Columna(dt, "Calor");
número_de_fila = 0;
Para (i = total_filas, i >= 1, i--,
Si(Tiempo_col[i] == valor_máximo,
núm_fila = i;
Romper();
)
);
tiempo_máximo = :Tiempo[número_fila];
col_data = Columna(dt, "Calor") << Obtener valores;
min_data = col_data[num_fila::total_filas];
min_value = Mínimo(min_data);
posiciones_min = loc min(datos_min);
min_time_col = min_posiciones + (fila_num - 1);
min_time = :Tiempo[min_time_col];
Constructor de gráficos(
Tamaño(1032, 646),
Mostrar panel de control (0),
Ajustar a la ventana ("Desactivado"),
Variables( X( :Tiempo ), Y( :Calor ) ),
Elementos( Línea( X, Y, Leyenda( 14 ) ) ),
EnviarAlInforme(
Despacho( {}, "Tiempo", ScaleBox,
{Formato( "Mejor", 12 ), Mín( 1.88 ), Máx( 5.07800951567129 ), Aum( 0.5 ),
Marcas menores (4), Agregar línea de referencia (
tiempo máximo,
"Punteado",
"Negro",
Char(tiempo máximo),
2,
1,
Configuración de etiqueta ({Color de etiqueta( "Rojo")})
), Agregar línea de referencia(
mi_tiempo,
"Punteado",
"Negro",
Char(mi_tiempo),
2,
1,
Configuración de etiqueta ({Color de etiqueta( "Rojo")})
)}
),
Despacho( {}, "Calor", ScaleBox,
{Agregar línea de referencia(
valor máximo,
"Punteado",
"Negro",
Char(valor_máximo),
2,
1,
Configuración de etiqueta ({Color de etiqueta( "Rojo")})
), Agregar línea de referencia(
valor mínimo,
"Punteado",
"Negro",
Char(valor_mín),
2,
1,
Configuración de etiqueta ({Color de etiqueta( "Rojo")})
)}
)
)
);
¿Hay algo que no esté haciendo ese guión?
¡Gracias por compartir este código! Tengo un problema: al ejecutar el mismo script, el gráfico generado es muy diferente. ¿Qué estoy haciendo mal?
Si usa la tabla de ejemplo proporcionada, no funcionará a menos que configure los tipos de datos de las columnas como numéricos y los tipos de modelado como continuos. Supongo que no realizó la conversión de tipos de modelado.
Gracias. Después de actualizar todo, el gráfico muestra una línea media para la estadística de resumen. Ahora muestra el pico y el valle, así que intentaré averiguar cómo hacer que la línea muestre los datos reales.
Conseguí que todo funcionara y lo acepté como solución. Sin embargo, al intentar usar el generador de gráficos, la línea sigue siendo un signo negativo. Supongo que algo en el script está causando esto. ¿Alguien podría ayudarme a solucionar este problema?
Utilizará la línea media porque hay múltiples mediciones ocurriendo exactamente al mismo tiempo.
Editar: Asegúrese de que sus datos estén ordenados correctamente y luego utilice el orden de filas

De esta manera, no debería utilizar estadísticas de resumen y ordenará los datos en el eje x según el orden de filas de su tabla.
Gracias, la solución fue asegurar que todas las columnas de datos estuvieran etiquetadas como numéricas y continuas. Gracias a todos por su paciencia mientras me ayudaban.