Possibilité d'ajouter la création automatique de graphe dans le script JSL?Bonjour,
J'ai écrit un JSL pour organiser les données expérimentales qui met à jour 22 tableaux de données (correspondant aux produits), chacun contenant des colonnes pour différents paramètres physico-chimiques (par exemple pH, osmolalité). Actuellement, je crée manuellement des graphiques à l'aide de la fonction Graph Builder et du `` script d'enregistrement dans la table de données '', mais je me demandais s'il était possible d'écrire cela dans le script JSL principal qui génère mes tables de données?
Chaque graphique affiche un paramètre particulier sur l'axe des y et l'heure sur l'axe des x, donc je veux écrire du code qui génère des graphiques dans chaque table de données pour chaque paramètre, plutôt que d'avoir à créer manuellement les graphiques et enregistrer le script.
Tableau de donnéesScriptingRe: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Absolument, vous pouvez ajouter la possibilité d'exécuter une plate-forme Graph Builder en JSL dans votre programme principal., Si vous exécutez de manière interactive le générateur de graphes souhaité, vous pouvez ensuite accéder au triangle rouge et sélectionner Enregistrer le script. si vous l'enregistrez dans une fenêtre de script, vous pourrez voir le JSL requis pour produire le graphique. Sans plus de détails sur votre script, il est assez difficile d'aller au-delà de ma suggestion ci-dessus.Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Salut Jim,
Voici un exemple de script de création de graphes dans mon programme:
Graph Builder(
Size( 1263, 901 ),
Variables(
X( :Name( "Time (Months)" ) ),
Y( :Name( "% Adsorption" ) ),
Overlay( :Lot Number )
),
Elements(
Points( X, Y, Legend( 13 ) ),
Line Of Fit( X, Y, Legend( 15 ), Confidence of Fit( 0 ) )
));
Ma préoccupation est qu'en raison de la taille de mon script, je devrais écrire plus de 100 itérations du script ci-dessus pour couvrir toutes les différentes tables de données et paramètres de l'axe y. Je me demandais si je pouvais créer une liste de tous les paramètres de l'axe y et faire appel à cette liste dans le script ci-dessus?
Mon script principal trie essentiellement une base de données de données brutes en 22 tableaux de données «sous-ensemble de produits», chacun étant spécifique à un produit particulier. Il existe environ 30 paramètres physico-chimiques différents, dont chacun doit avoir un graphique séparé en fonction du temps. Cependant, tous les paramètres ne s'appliquent pas à tous les produits. C'est-à-dire qu'un tableau de données particulier ne peut contenir que 10 des 30 paramètres.
Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Il existe plusieurs façons de procéder. Vous pouvez simplement créer une table de données séparée contenant une colonne pour chaque produit, puis la placer dans les lignes, pour les paramètres physico-chimiques de ce produit. Ensuite, votre script devrait simplement déterminer le produit sur lequel il travaille et lire dans la colonne de la table de données de configuration les paramètres à traiter.
Si vous n'avez pas lu le guide de script, c'est maintenant le moment de le faire.Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?salut @DanAlexander ,
Je seconde @txnelson que vérifier le Guide de script JSL serait vraiment utile étant donné la complexité de ce que vous essayez de faire.
Mais pour commencer, voici un exemple qui tente de faire quelque chose de similaire à ce que vous avez décrit.
La fonction "setup" crée quelques vues de données à partir du fichier de données d'exemple "CrimeData.jmp", pour simuler vos sous-ensembles de produits, et les associe à différents sous-ensembles des colonnes de la table.
Le "build_graphs" montre comment utiliser JSL pour créer des graphiques à partir d'un modèle. Il s'agit simplement d'utiliser la substitution de variables.
Les graphiques sont combinés dans une seule fenêtre à l'aide d'une V List Box.
J'espère que ceci est utile!
Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Je me demande simplement, il est peut-être possible de le faire en utilisant la fonction `` Pour chaque ligne '', si chaque ligne correspond à un paramètre d'axe des y différent comme vous l'avez dit.
Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Merci d'avoir partagé l'exemple de script avec les fonctions Setup et Build-graphs. J'ai pu adapter ces fonctions à mon script avec succès!
Je me demandais, est-il possible d'enregistrer la fenêtre graphique dans un fichier séparé dans le même répertoire que mes tables de données? J'utilise la fonction 'Fermer' dans tout mon script pour enregistrer les différentes tables de données, mais je ne sais pas comment utiliser la fonction pour enregistrer les fenêtres graphiques générées à l'aide de V List Box dans la fonction 'Build_graphs'.
Par exemple, tout au long de mon script, j'ai des variations de:
Close( dtProduct, Save( save_path_example || "dtProduct.JMP"));
Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Salut,
Oui, vous le pouvez. Je ne savais pas comment mais un rapide coup d'œil dans les options disponibles pour l'objet Fenêtre dans l'index de script m'a pointé vers la fonction "Enregistrer le rapport de fenêtre".
Veuillez consulter le fichier joint. Il corrige un bogue dans la fonction build_graphs (il ne retournait pas la référence de la fenêtre) et ajoute la ligne suivante à la fin du script:
win << Save Window Report( "automated_gb2.jrp", embed data( 1 ) );
Re: Possibilité d'ajouter la création automatique de graphe dans le script JSL?Salut,
J'ai essayé d'utiliser la fonction «Enregistrer le rapport de la fenêtre», mais le script donne l'erreur dans l'image jointe.Également étrangement, je n'ai pas trouvé cette fonction dans l'index de script pour Window Object.
L'erreur se lit comme suit: 'Envoyer s'attend à un objet scriptable lors de l'accès ou de l'évaluation de' Envoyer ', gagner << / * ### * / Enregistrer le rapport de la fenêtre ("automatic_gb2.jrp", incorporer les données (1)) / * ## # * /