De la imagen a los datos
Introducción
¿Qué haces cuando solo tienes una imagen de un gráfico, pero necesitas los datos detrás del gráfico? Puede ser un proceso minucioso si decides hacerlo a mano, un punto a la vez. Sin embargo, puedes extraer datos de una imagen a una tabla de datos usando JMP, y solo requiere unos pocos pasos.

Paso 1: Importar la imagen
El primer paso es obtener la imagen completa como información en una tabla JMP. Si bien esto se puede hacer mediante scripts, también se puede hacer utilizando el excelente complemento Image to Table . Usaré una imagen de la población de Reykjavik como ejemplo, pero cualquier imagen de un gráfico de líneas debería funcionar.
Después de descargar e instalar el complemento, al seleccionar Complementos > Analizador de imágenes puedo seleccionar la imagen e importarla como una tabla de datos. La tabla de datos incluye los datos RGB (así como otra información) de cada píxel de la imagen.

Paso 2: Fijar la escala
Una vez abierta la tabla, utilizar el generador de gráficos para recrear una versión en blanco y negro de la imagen es bastante sencillo. En la imagen que aparece a continuación, utilicé la columna I (Intensidad) como columna de color e invertí la escala Y para que coincida con la forma en que se guardan las imágenes.

Ahora puedo ver un problema inmediato: la escala del gráfico no coincide con la escala en JMP. Esto es muy fácil de solucionar; implica utilizar algunas funciones integradas en JMP, junto con una tabla de datos intermedia.
- Cree una tabla de datos en blanco con cuatro columnas (X, Y, X deseado e Y deseado).

- Elija un punto de datos en la parte inferior izquierda del gráfico en una ubicación conocida, por ejemplo, donde el eje X es el año 1896 y la población es 0. Ingrese estos valores en la nueva tabla de datos en la Fila 1 de las columnas X deseada e Y deseada.

- En la ventana del generador de gráficos, seleccione la herramienta Cruz y, a continuación, pase el cursor sobre este punto de datos. Observe los valores X e Y que se indican. Escríbalos en la fila 1 de las columnas X e Y.

- Repita este proceso para un punto conocido en la esquina superior derecha del gráfico, registrando los valores actuales y deseados para X e Y. Su tabla debería verse como el ejemplo a continuación.

El siguiente paso es cambiar los valores de escala X e Y en la tabla de datos de la imagen para que coincidan con lo que se muestra en el gráfico. Básicamente, es necesario aplicar un factor de escala y un desplazamiento a cada columna. Afortunadamente, esto es simplemente ajustar una línea, que es una función básica de la plataforma Fit Y by X. En la imagen siguiente, he ajustado una línea a la relación entre los valores actuales y los valores deseados para X e Y.

La clave aquí es observar la fórmula para el ajuste lineal. Proporciona tanto un desplazamiento como una escala, en la forma de una ecuación y = mx + b, donde m es la escala y b es el desplazamiento. Estos parámetros se pueden utilizar con la herramienta Nueva columna de fórmula en JMP para corregir rápidamente los ejes.
- En la tabla de datos de la imagen, haga clic con el botón derecho en la columna X y seleccione Nueva columna de fórmula > Transformar > Desplazamiento de escala...
- Introduzca los valores para el factor de escala (escrito aquí como Multiplicador) y el Desplazamiento, copiados de la fórmula en la ventana Ajustar Y por X.

- Repita este proceso para la columna Y. Asegúrese de ingresar el número negativo para el multiplicador.
Ahora, en la tabla de datos hay nuevas columnas para X e Y, con ejes y escalas que coinciden con la imagen. Al cambiar los ejes de estas nuevas columnas en el Generador de gráficos, se muestra cómo estos nuevos ejes se alinean con los ejes de la imagen.

Paso 3: Extraer los datos
El único paso que queda es eliminar todas las filas de la tabla de datos de la imagen que no sean puntos de datos en la línea de interés. Para ello, K Means Clustering es una herramienta rápida y casi automática. (Un agradecimiento especial a @landonbw1 por mostrarme este truco).
La imagen original parece tener cuatro colores: blanco, azul, gris y negro. Debería ser sencillo, entonces, pedirle a JMP que separe las columnas R, G y B en cuatro grupos, y la línea azul debería ser uno de esos grupos. Debido a la forma en que funcionan la compresión de imágenes, la combinación de colores y otros factores en los archivos de imagen, en realidad hay más de 500 colores separados en esta imagen. Aun así, podemos separar los colores principales con bastante facilidad. Generalmente, al establecer la cantidad de grupos al doble de la cantidad de colores visibles (colores que un humano normal diría que hay en una imagen), se crean grupos de elementos gráficos individuales a partir de un archivo de imagen.
- Seleccione Analizar > Agrupamiento > Clúster K-medias .
- Ingrese las columnas R , G y B en la selección Columnas Y , luego seleccione Aceptar .
- Ingrese 8 en la sección Número de clústeres y luego seleccione Ir .
- Seleccione cada grupo en la tabla Resumen de grupos , mientras observa el Generador de gráficos, para determinar a qué grupo pertenece la línea. En la imagen siguiente, al resaltar el grupo 5, se resaltan solo los puntos de datos en la línea del gráfico.

- Seleccione todos los clústeres excepto el clúster de interés (5, en este caso) y elimine estas filas de la tabla. Ahora, las únicas filas restantes son los puntos de datos del gráfico en la imagen. Al cambiar algunas opciones del generador de gráficos, se obtiene un gráfico interactivo de los datos en JMP, donde antes solo había una imagen estática.

Conclusión
Existe cierta ironía en el hecho de que se necesita más tiempo para leer cómo extraer datos de una imagen a una tabla de datos que para realizar el proceso en sí. Sin embargo, dejando de lado la ironía, también hay muchas oportunidades para utilizar este proceso, entre ellas:
- Al comienzo de un proyecto de investigación, al estudiar toda la literatura disponible.
- Ingeniería inversa de un proceso o producto.
- Digitalización de curvas de tensión-deformación para su uso en la plataforma de Modelo de Fatiga .
¿Qué oportunidades abre esto para tu trabajo?
Muy bien. ¡El agrupamiento realmente ahorra mucho tiempo!
Buen trabajo, @Jed_Campbell .
En muchos casos, la selección de datos (extracción de la curva) también funciona seleccionando de forma interactiva los puntos/regiones de interés en Graph Builder, luego invirtiendo la selección de filas (en la tabla) y luego fila>ocultar y excluir. El espacio en blanco se puede eliminar de manera similar, por ejemplo, seleccionando un punto blanco (en Graph Builder) > seleccionando celdas coincidentes (haz clic derecho en la celda en la tabla) > fila>ocultar y excluir.
Ya me ha funcionado bien:)
Este complemento es un gran paso adelante para las personas que buscan recuperar datos de imágenes de gráficos directamente en JMP. ¡Gracias por hacerlo disponible!
Para quienes estén explorando tareas similares, también recomiendo consultar una herramienta gratuita llamada Digitalizador de trazados web ( https://automeris.io/WebPlotDigitizer/ ). Lleva tiempo en el mercado y es sorprendentemente rápida e intuitiva para extraer datos de todo tipo de gráficos. La versión 4.x es de código abierto y se puede usar sin conexión, lo cual resulta muy práctico.
Es fantástico ver que hay más herramientas disponibles para este tipo de trabajo. Esperamos que el desarrollo continuo en ambos frentes haga que la extracción de datos sea aún más fluida.
¡Se agregaron características muy interesantes recientemente! ¡Gracias @Jed_Campbell !