matplotlib sur le générateur de graphes JMPSalut, j'essaie de combiner matplotlib et JMP graph builder, mais je ne sais pas si c'est possible. Je veux tracer un graphique particulier que je ne pourrais tracer que sur matplotlib; mais je veux profiter des avantages de l'interface du générateur de graphes JMP, comme le filtrage des données. Il est possible d'afficher un tracé matplotlib sur l'interface du générateur de graphes JMP ? Merci d'avance
GraphiqueScriptRe : matplotlib sur le générateur de graphes JMPCet exemple doit être ajouté au livre de recettes JMP
Re : matplotlib sur le générateur de graphes JMPIncroyable grand exemple!
Si vous utilisez cet exemple, soyez prêt à attendre que Python se charge après le premier clic ; ma machine lente peut prendre 10 à 30 secondes. Une fois chargé, il est assez rapide sur les clics suivants.
Re : matplotlib sur le générateur de graphes JMPJe pourrais mal comprendre le résultat souhaité, mais il semble que vous n'ayez besoin que d'un filtre de données et d'un tracé, pas de l'interactivité glisser-déposer dans Graph Builder (GB) et de la disposition complexe des graphiques dans GB.
Si tel est le cas, je pense que vous avez au moins besoin des ingrédients suivants :
- Fonction JSL "Make Filter Change Handler", afin que vous puissiez obtenir des sous-ensembles de données en fonction de l'état du filtre de données. Voir l'exemple pour "Make Filter Change Handler" dans Scripting Index.
- Fonction JSL "Python Get Graphics", pour que vous puissiez récupérer l'intrigue à partir de python. Voir l'exemple pour "Python Get Graphics" dans Scripting Index.
- Une boîte d'affichage "Data Filter Context Box" pour contenir à la fois le filtre et votre tracé, et éventuellement d'autres analyses ensemble.
Voici un petit exemple qui rassemble les éléments.
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 );
Faites attention à la règle d'indentation de Python. Par exemple, toutes les chaînes dans Python Submit doivent coller leurs fronts au début des lignes.
Voici quelques captures d'écran du produit.


Re : matplotlib sur le générateur de graphes JMPUn script peut gérer l'utilisation d'un filtre de données, qui déclenche le code matplotlib et recrée le graphique en fonction des données filtrées.Mais je ne sais pas de toute façon intégrer Graph Builder avec matplotlib.