matplotlib en el generador de gráficos JMPHola, estoy tratando de combinar matplotlib y el generador de gráficos JMP, pero no sé si es posible. Quiero trazar un gráfico en particular que solo pude trazar en matplotlib; pero quiero aprovechar las ventajas de la interfaz del generador de gráficos JMP, como el filtrado de datos. ¿Es posible mostrar un diagrama matplotlib sobre la interfaz del generador de gráficos JMP? Gracias por adelantado
Gráficossecuencias de comandosRe: matplotlib en el generador de gráficos JMPEste ejemplo debe agregarse al libro de recetas de JMP
Re: matplotlib en el generador de gráficos JMPIncreíble gran ejemplo!
Si usa este ejemplo, prepárese para esperar a que Python se cargue después del primer clic; mi máquina lenta puede tardar entre 10 y 30 segundos. Una vez cargado, es lo suficientemente rápido en los clics posteriores.
Re: matplotlib en el generador de gráficos JMPPodría malinterpretar el resultado deseado, pero parece que solo necesita un filtro de datos y un gráfico, no la interactividad de arrastrar y soltar en Graph Builder (GB) y el diseño gráfico complejo dentro de GB.
Si es así, creo que al menos necesitas los siguientes ingredientes:
- Función JSL "Crear controlador de cambio de filtro", para que pueda obtener subconjuntos de datos en función del estado del filtro de datos. Consulte el ejemplo de "Crear controlador de cambio de filtro" en el Índice de secuencias de comandos.
- Función JSL "Python Get Graphics", para que pueda recuperar el gráfico de python. Consulte el ejemplo de "Python Obtener gráficos" en el índice de secuencias de comandos.
- Un cuadro de visualización de "Cuadro de contexto de filtro de datos" para contener tanto el filtro como su gráfico, y posiblemente otros análisis juntos.
Aquí hay un pequeño ejemplo que pone los elementos juntos.
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
filter = (dt << Data Filter( Local, Add Filter( columns( :Region ) ) )),
pb = Picture Box()
)
)
);
f = Function( {nrows},
rows = filter << get filtered rows;
xx = dt:X[rows];
yy = dt:Y[rows];
Python Init();
Python Send(xx);
Python Send(yy);
ml = Python Submit(
"\[
import matplotlib.pyplot as plt
plt.scatter(xx,yy)
plt.xlabel('X')
plt.ylabel('Y')
plt.show(block=False)
]\"
);
plot = Python Get Graphics( png );
pb << set image(plot);
Python Submit( "plt.close()" );
Python Term();
);
rs = filter << Make Filter Change Handler( f );
Preste atención a la regla de sangría de Python. Por ejemplo, todas las cadenas en Python Submit deben pegarse al principio de las líneas.
Aquí hay un par de capturas de pantalla del producto.


Re: matplotlib en el generador de gráficos JMPUna secuencia de comandos podría manejar el uso de un filtro de datos, que activa el código matplotlib y recrea el gráfico en función de los datos filtrados.Pero no sé de todos modos para integrar Graph Builder con matplotlib.