Uso del generador de gráficos para crear gráficos con datos Y agrupados<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Soy ecólogo tropical especializado en el dosel amazónico. Estoy escribiendo mi tesis doctoral y uso JMP Pro (soy un usuario bastante nuevo sin experiencia en programación) para ejecutar PLS y otros análisis en mis datos. Tengo un gran conjunto de datos de hojas agrupadas por árbol, nivel de dosel de hojas (sol o sombra) y edad de las hojas. Para uno de mis primeros análisis, tengo 12 árboles con 4 árboles que tienen hojas de sol y sombra y el resto solo hojas de sol. Necesito crear gráficos para diferentes características de la hoja, como el contenido de agua de la hoja, el grosor de la hoja, el peso fresco y seco de la hoja, el % de contenido de carbono, etc., etc. Estos gráficos deben construirse de manera que:
Eje X = edad de la hoja
Y = característica de la hoja (p. ej., grosor de la hoja) agrupada por árbol y por posición del dosel solar y sombreado
He estado tratando de crear estos gráficos, pero sigo obteniendo un gráfico que divide la escala Y para cada árbol y cuando trato de poner la agrupación de sol y sombra en el gráfico, todo empeora aún más. Estaría muy agradecido si alguien pudiera aconsejarme sobre cómo crear estos gráficos agrupados en Y y cuál es la mejor manera de automatizar la producción de numerosos gráficos. ¡Muchas gracias de antemano por la ayuda!;
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosMuchas gracias por su pronta respuesta. De hecho, algunas de las columnas numéricas habían pasado al modo de caracteres. Ahora he corregido esto y mis gráficos tienen sentido y muestran patrones sorprendentes, ¡muchas, muchas gracias!
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosSí, esa es una pista útil. Parece que la columna de RoC promedio es una columna de caracteres en lugar de una columna de números, y JMP la trata simplemente como una lista de nombres. Puede solucionarlo en el cuadro de diálogo Información de la columna. Cambie el tipo de datos a Numérico y el tipo de modelado a Continuo.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosMuchas gracias, MS y Xan por su consejo. Buscaré Illustrator y OmniGraffle más adelante cuando necesite que mis gráficos se vean lo suficientemente bien para su publicación. Actualmente, estoy creando una gran cantidad de gráficos para presentar visualizaciones iniciales de mis datos a mis supervisores.
Hasta ahora he creado un primer grupo de gráficos de líneas que representan las diferentes propiedades físicas (grosor de la hoja, área, peso seco, etc.) y químicas (%C, %nN, etc. contenido) de mis hojas a medida que envejecen. La evolución de uno de esos gráficos para el grosor de la hoja se puede ver en el historial de estas publicaciones. Con su ayuda, creé con éxito gráficos lineales que representan los valores medios de grupos de hojas de cada edad de hoja por posición de dosel por árbol. Ahora estoy tratando de crear un nuevo grupo de gráficos para representar la tasa de cambio promedio (RoC promedio) para estos mismos físicos y químicos de una edad de hoja a la siguiente. Sin embargo, me he encontrado con problemas bastante pronto. Calculé el RoC promedio (RoC promedio = y2-y1/x2-x1) a partir de los valores medios para las diferentes propiedades de las hojas en Excel y luego importé los datos a una nueva tabla de datos JMP. Sin embargo, cuando traté de crear gráficos de líneas para el promedio de RoC, las cosas empezaron a salir mal nuevamente. Como puede ver en el gráfico a continuación, los valores negativos del eje Y se han invertido por alguna razón y, en el caso que se muestra a continuación, el RoC promedio negativo más alto con un valor de -23.155... (He verificado dos veces mis datos y este valor es correcto) ¡¿incluso se ha reorganizado en algún lugar en el medio?! Intenté marcar y desmarcar el orden de fila y cuando abrí la ventana de configuración del eje Y encontré esta línea antes de los valores mínimo y máximo correctos:
Formato: 0 es -0.004850; 56 es 5.805832
Supongo que esto tiene algo que ver con eso, pero no entiendo cómo funciona o cómo puedo corregirlo. También miré el script para este gráfico y no puedo encontrar ninguna referencia a esto. ¿Podrías ayudarme con esto por favor?

Muchas gracias de antemano por la ayuda,
Cecilia
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosEn Mac, OmniGraffle es una aplicación de gráficos vectoriales fácil de usar. Para usarlo en la salida JMP, use Imprimir desde JMP y elija Guardar como PDF. OmniGraffle puede abrir archivos PDF. Adobe Illustrator puede manejar más formatos, pero es más difícil de usar y más costoso. Algunos analistas llaman a este tipo de edición de "posproducción" de limpieza gráfica, y no es (todavía) una especialidad de JMP.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosPara agregar una línea de referencia, simplemente haga doble clic en el eje para abrir el panel de configuración del eje. Allí puede especificar el valor, el color y el estilo de una o más líneas de referencia.
Para el gráfico en el ejemplo de secuencia de comandos anterior, este código agrega una línea de referencia gris del eje y en 60:
report(gb)[scalebox(2)]<<ADD ref="" line=""></ADD>
Con un programa de dibujo vectorial no me refiero a un software de gráficos, sino a un software de dibujo general como Adobe Illustrator, donde se puede editar cualquier aspecto de los gráficos. Simplemente copie de JMP y péguelo en Illustrator. No es difícil aprender los conceptos básicos.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola MS,
Muchas gracias por su respuesta, intentaré su sugerencia de eliminar todo el cuadro de grupo más tarde, ya que necesito continuar y enviar algunos gráficos a mis supervisores para experimentar más tarde. Sin embargo, ¿puedo hacer una pregunta más sobre estos gráficos? ¿Cómo puedo agregar una línea gris en el 0?
Estoy interesado en su mención de un "programa de dibujo vectorial", ¿puedo preguntarle qué software usa para esto? Uso una MAC y después de buscar en Google "programas de dibujo vectorial para MAC" estoy un poco confundido acerca de lo que hacen estos programas, no parecen estar diseñados para crear gráficos, ¿importa sus gráficos a estos programas y simplemente agrega o borra cosas según sea necesario? No sé si esta es la dirección en la que me gustaría ir, ¿no son este tipo de programas bastante difíciles de aprender? He tenido recomendaciones anteriores para aprender Sigmaplot (uso Paralleles en mi Mac), o aprender programación R, Matlab o Python, pero estoy un poco confundido con las opciones. A través de mi Universidad tengo acceso a Sigmaplot y Matlab. Intenté probar SIGmaplot pero no llegué muy lejos, no probé Matlab. Instalé R en mi computadora, pero estoy atascado con la instalación de algunos de los módulos de Python. ¡Estaría MUY agradecido por cualquier consejo y/o sugerencia sobre todo esto, ya que actualmente estoy abrumado por las opciones!
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosSe puede eliminar todo el cuadro de grupo, pero no conozco una forma de eliminar solo el encabezado. Parece ser de un tipo especial (no documentado) de caja de presentación.
A continuación se muestra un ejemplo de cómo deshacerse del cuadro de grupo. También muestra cómo se pueden agregar nuevas etiquetas de grupo.
dt = open("$sample_data\Big Class.jmp");
gb=graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Group X( :sex ) ),
);
Report( gb )[Graphbuildergroupbox( 1 )] << delete;
Report( gb )[framebox( 1 )]<<ADD text="" annotation=""></ADD>
Utilizo el generador de gráficos como una forma rápida de descubrir patrones y relaciones en mis datos, y todas las opciones avanzadas permiten buscar patrones bastante complejos. Sin embargo, una vez que me he conformado con un gráfico, casi siempre lo llevo a un programa de dibujo vectorial donde se puede editar en detalle antes de usarlo en presentaciones o manuscritos.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola xan,
Muchas gracias de nuevo por su pronta respuesta.
1. Probé su sugerencia de usar el mensaje Tamaño en el Grupo X, pero eso solo movió el encabezado del Grupo X al mismo nivel que las posiciones reales del dosel, como puede ver en el gráfico a continuación:

Ya había entrado en Preferencias y no hay nada allí para formatear el Grupo X aparte de cambiar el borde del Grupo X a la parte inferior del gráfico.
Con respecto a explicar la necesidad de eliminar el encabezado del Grupo X, es porque simplemente no lo necesito. Tendré que agregar una nota para explicar qué significan las etiquetas "SU" y "SH" en la leyenda de la figura de todos modos, por lo que no es necesario un encabezado. Incluso he intentado borrar el nombre de la columna para que no haya encabezado, pero aparentemente no se permite una columna sin nombre.
Noté en el fragmento de secuencia de comandos que incluí a continuación que la variable de grupo X se declara usando " " y creo que estos se usan para nombres de texto/encabezado como en la variable X. No sé por qué el Grupo X también se declara de esta manera. En realidad, acabo de cambiar el nombre del Grupo X a Posición de dosel y ahora se declara como la variable Y, así que supongo que los " " se usan cuando el nombre de una variable incluye símbolos, ¿verdad?
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :"SU-SHCanopyPos", Size(1), Levels( 2 ) ),
Overlay( :tree )
),
De acuerdo, hasta ahora nada de lo que he intentado ha funcionado y estoy confundido acerca de por qué no es posible personalizar los encabezados de los grupos X e Y cuando esto se hace fácilmente con todos los demás encabezados, ¿esto parece un poco de falla de diseño? ¿Usted o alguien más tiene más ideas sobre cómo deshacerse del encabezado del Grupo X?
Muchas gracias,
Cecilia
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupados1. ¿Puede explicar más sobre la necesidad de eliminar el encabezado del Grupo X? Debe querer etiquetar los paneles de alguna manera. Si desea un estilo diferente, es posible que pueda abordarlo en Preferencias. Me di cuenta de que esencialmente puedes ocultar los nombres de los niveles usando el mensaje Tamaño en el Grupo X:
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ), Group X( :sex, Size( 1 ) ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
1b. Aparentemente, aprender JSL no es demasiado difícil. Lo digo no porque lo haya estado usando durante tanto tiempo que me resulte fácil, sino porque tuvimos varios estudiantes en prácticas este verano que estaban generando proyectos agradables en unos pocos días y proyectos complejos en unas pocas semanas. En cualquier caso, el Índice de secuencias de comandos en el menú Ayuda y Guardar en secuencia de comandos que ya descubrió son claves para ponerse al día rápidamente.
2. Genial.
3. Me olvidé de cómo el eje X anidado conectaría la línea en todo su recorrido. Una solución fea es unir Canopy con su variable de superposición, pero luego cada línea tendrá un color diferente y tendrá que cambiar manualmente algunos de los colores para que coincidan con los valores del árbol.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola xan,
Muchas gracias por su pronta respuesta.
Con respecto a tus comentarios:
1. Sí, llegué a la misma conclusión anoche y pasé una mañana y una tarde frustrantes tratando de reescribir algunas partes del script del gráfico para que haga lo que quiero. Sin embargo, como tengo MUY POCA experiencia en programación, ¡no llegué muy lejos! He averiguado para qué sirven el 95% de las diferentes secciones de código, pero no he podido reescribir nada ni agregar una línea de código para deshacerme de las etiquetas del Grupo X. A continuación, pegué el script para mi último gráfico (lo siento, no sé cómo guardarlo en un archivo separado). He jugado tomando la parte "Nombre" de la declaración de variable del Grupo X, pero no funcionó. También intenté agregar una línea de Despacho similar a la que elimina el título del gráfico, pero tampoco funcionó. ¿Podrías ayudarme con esto por favor? He estado evitando aprender a programar porque tengo mucho trabajo por hacer y me toma un mes más o menos (¡con muchas esperanzas!) para aprender un lenguaje de programación parece ser demasiado, pero estoy llegando a un punto en el que creo que es inevitable. ¿Qué tan difícil sería aprender algunas secuencias de comandos básicas para poder modificar los gráficos disponibles existentes en Graph builder? ¿Tiene algún consejo sobre esto?
Graph Builder(
Size( 868, 525 ),
Show Footer( 0 ),
Lock Scales( 1 ),
Auto Stretching( 0 ),
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :Name( "SU/SHCanopyPos" ), Levels( 2 ) ),
Overlay( :tree )
),
Elements( Line( X, Y, Legend( 5 ), Row order( 0 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch(
{},
"Leaf Age Class (age in cummulative weeks)",
ScaleBox,
{Show Major Ticks( 0 ), Show Minor Ticks( 0 ), Rotated Labels( "Automatic" )}
),
Dispatch( {}, "thickness", ScaleBox, {Min( 0.12 ), Max( 0.46 ), Inc( 0.05 ), Minor Ticks( 1 )} ),
Dispatch( {}, "", ScaleBox, {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch( {}, "", ScaleBox( 2 ), {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
5,
Properties( 0, {Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 1, {Line Color( -16715009 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 2, {Line Color( 73 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 3, {Line Color( 24 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 4, {Line Color( -16739840 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 5, {Line Color( 36 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 6, {Line Color( 14 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 7, {Line Color( 0 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 8, {Line Color( 75 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 9, {Line Color( 1 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 10, {Line Color( 20 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 11, {Line Color( 42 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "Tree" )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Leaf Thickness (mm)" )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 2 ), Line Width Scale( 3 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 2 ), {Marker Size( 2 ), Line Width Scale( 3 )} )
)
);
2. Muchas gracias por la sugerencia de Unicode, funcionó.
3. Intenté anidar Canopy y Leaf Age juntos y no me gustó el resultado, ya que se une a los gráficos. Los árboles que tienen hojas tanto de sol como de sombra terminan teniendo una larga línea continua con líneas de sol y sombra unidas, lo que confunde las cosas. Entonces, lo que hice fue juntar las dos edades diferentes en semanas para la clase de edad de la hoja O/S1, como puede ver en el gráfico a continuación.

Muchas gracias como siempre por tu ayuda.
Cecilia
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosBuen trabajo, Cecilia, al descubrir todo eso a partir de mis breves descripciones.
1. No creo que haya una forma de desactivar las etiquetas del Grupo X en la vista en vivo. Puede hacer clic con el botón derecho y moverlo hacia abajo, o puede cambiar su estilo en Preferencias > Plataformas > Creador de gráficos. O puede registrar el gráfico en un diario, lo que crea una vista muerta, y luego eliminar partes de él mediante el uso de la herramienta de selección "fat plus".
2. JMP no tiene un estilo de superíndice, pero hay caracteres Unicode especiales para los dígitos en superíndice y puede utilizarlos en el nombre. Aquí hay un ejemplo si este foro lo admite: m².
3. El eje X es idéntico dentro de los niveles de agrupación (para permitir la comparación visual entre grupos). Sin embargo, puede anidar Canopy y Leaf Age juntos en el eje X. En ese caso, se omitirán los subniveles faltantes, lo que suena como lo que desea.
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola xan,
Muchas gracias por tus recomendaciones, fueron acertadas. Con su ayuda y la de Jeff, casi he llegado al gráfico que deseo crear. A continuación se muestra el gráfico que he creado hasta ahora:

Tengo tres preguntas más sobre estos gráficos:
1. ¿Cómo me deshago de la leyenda "SU/SHCanopyPos" del Grupo X? Intenté hacer doble clic y clic derecho en la leyenda y jugar con el script (¡con mis habilidades de programación inexistentes!) y no pude encontrar una manera de deshacerme de esta leyenda.
2. ¿Cómo puedo superíndice parte del texto (unidades ei como m2) en la leyenda Y?
3. Creo que esta pregunta es un poco más complicada: como puede ver en las agrupaciones X, después de concatenar los datos de "edad en semanas" en las clases de edad de las hojas, terminé con dos clases de edad O/S1 separadas. Esto se debe a que las hojas de sol de esta clase de edad viven vidas más cortas (61 semanas) que las hojas de sombra (79 semanas). ¿Hay alguna manera de obtener solo una clase de edad O/S1 para cada posición de velamen pero con la "edad en semanas" correcta para cada una?
Finalmente, usé el Column Switcher para crear gráficos similares pero no me gustó tanto, lo encontré un poco engorroso. Entonces, probé la opción de secuencias de comandos y la encontré mucho más sencilla.
Muchas gracias de nuevo por la ayuda,
Cecilia
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola Cecilia,
Para obtener todos los árboles en un gráfico, puede poner Árbol en la ranura Superposición (asegúrese de que la columna Árbol esté marcada como nominal ya que, de lo contrario, las variables continuas pueden agruparse). Luego, la variable Canopy tendrá que estar en una de las ranuras del Grupo X o del Grupo Y.
si realmente quieres todo las líneas en una parcela, puede crear una nueva variable que concatene Tree and Canopy y luego superponerse con esa variable. Para hacer eso, cree una nueva columna de caracteres y asígnele una fórmula que concatene las otras dos columnas. Algo como :Árbol || " " || :Pabellón . "||" es la operación de concatenación de texto.
Puede usar un método similar para agregar los valores de edad del árbol: :clase de edad || "(" || Char(:edad en semanas) || ")"
Puede controlar el orden SU/SH agregando una propiedad Orden de valor a la columna Canopy en el cuadro de diálogo Información de columna.
Para crear muchos gráficos similares, puede usar Column Switcher (en Triángulo rojo > script > Column Switcher) para hacerlo de manera interactiva o usar secuencias de comandos JSL para hacerlo mediante programación (Triángulo rojo > script > Guardar en ventana de secuencia de comandos, luego edite el nombre Y).
xana
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola Jeff,
Muchas gracias por su respuesta y por tomarse el tiempo para crear gráficos de ejemplo, y disculpas por no proporcionar suficiente información en mi publicación original. Sus gráficos en realidad ilustran muy bien los problemas que he estado encontrando. Usando tus gráficos como ejemplo:
1. Gracias por el consejo sobre el uso de la función Superposición para la posición del dosel de hojas de sol y sombra, que resuelve un problema. He estado usando el rol del grupo Y a la izquierda del gráfico para los diferentes árboles, lo que me da un gráfico que se parece al suyo pero está dispuesto horizontalmente en lugar de verticalmente. He actualizado mi gráfico usando el rol Superposición como se muestra a continuación:

Sin embargo, me gustaría lo anterior para:
1. ser un solo gráfico en lugar de un gráfico para cada árbol.
2. Me gustaría agregar el número equivalente de semanas que cada clase de edad de hoja representa entre paréntesis, por ejemplo, Y1(1), Y2(2), etc. Tengo estos datos en una columna separada en mi tabla de datos, ¿cómo se concatenan dos o más columnas en JMP Pro?
2. También he vuelto a crear su segundo gráfico (me gusta bastante este gráfico porque estaría menos ocupado que el anterior) de la siguiente manera:

También me gustaría lo anterior:
1. ser un solo gráfico en lugar de un gráfico para cada árbol
2. para cambiar el orden de la posición de la vela de manera que SU esté a la izquierda y SH a la derecha. He invertido el orden de los ejes X e Y, pero no encuentro esta opción para los roles de agrupación X e Y.
Después de organizar los gráficos para mostrar la información correctamente, me gustaría encontrar una manera de crear un montón de gráficos similares pero cambiando el eje Y.
Espero que lo anterior aclare mis dudas y les agradezco nuevamente su ayuda.
Cecilia
Re: Uso del generador de gráficos para crear gráficos con datos Y agrupadosHola CCHB,
No estoy seguro exactamente de lo que estás buscando.
Me burlé de algunos datos y los he adjuntado aquí para que pueda ver con qué comencé.
Aquí hay un gráfico que creé usando el rol del Grupo X en la parte superior del gráfico. Esto le da un gráfico para cada árbol.
También usé la columna Sol o Sombra en la función Superposición para obtener una línea para Sol y otra para Sombra para los árboles que tenían ambas.

Alternativamente, puede usar la columna Sol o Sombra en el rol del Grupo Y en el lado derecho del gráfico y obtener esto.

Si no he adivinado correctamente, describa más completamente qué serie de gráficos le gustaría y podemos intentar mostrarle cómo crearlos.
-Jeff