Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListBonjour à tous,
J'ai essayé de trouver un moyen d'enregistrer mes résultats dans un pptx. modèle et j'ai réalisé que je devais d'abord enregistrer chaque résultat dans un fichier pour ensuite le compiler dans un modèle de rapport.
D'après le post suivant :
https://community.jmp.com/t5/Discussions/the-graph-size-exported-to-pptx-Save-Presentation/mp/72135#M35554
Cependant, je n'ai pas été en mesure de trouver un moyen de nommer mes fichiers en fonction de la liste créée sous la boucle. J'utilise l'exemple Big Class suivant:
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
gb<< save picture(Eval Insert("C:\....\BigClass^i^.png"));););Y a-t-il quelqu'un qui sait comment faire cela?
J'ai essayé d'utiliser le ci-dessous à la place, mais cela ne fonctionne pas.
gb << Save Picture( "C:\BigClass_" || Ages[i] ||".jpg", JPEG );
Dois-je créer une chaîne/liste différente pour cela ? Toute orientation est très appréciée.
Merci
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListJe ne peux pas répondre directement à votre question, mais juste quelques réflexions sur l'approche. Vous voudrez peut-être les explorer via le point'n'clikc avant de regarder les scripts.
1. Vous souhaiterez peut-être utiliser le rôle Page dans Graph Builder, car cela crée un tracé séparé avec des axes pour chaque niveau de la variable dans Page.
dt = Open( "$SAMPLE_DATA\Big Class.JMP" );
Graph Builder(
Size( 518, 2948 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Page( :age ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
2. Peut-être vaut-il la peine de réfléchir à la façon dont vous pouvez utiliser la fonction de sauvegarde en tant que PowerPoint. À partir de n'importe quel rapport : Fichier > Enregistrer sous > Enregistrer sous le type : Présentation Powerpoint. Enregistrer la présentation() est la fonction JSL.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
rbiv << Save Presentation( "$TEMP/jmp_example.pptx" );
Open( "$TEMP/jmp_example.pptx" );
J'espère que cela pourra aider.
Salutations,
Phil
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau List@gzmorgan0
Merci pour la réponse.
J'essaie d'utiliser JSL jusqu'au point où j'ai besoin de créer le rapport en pptx. La raison pour laquelle j'ai enregistré les graphiques en fonction du nom de la liste est que je dois créer un rapport pour chaque élément de cette liste.
J'ai mis le script JSL ci-dessous. Le script tel qu'il est fonctionne mais il n'enregistre pas les graphiques avec son nom de liste correspondant, il enregistre uniquement chaque graphique sous sample_1 ; échantillon_2... etc. Par exemple, le nom de mon sample_1 est "EH3", cependant, les noms changeront tous les mois et donc idéalement, j'en aurais besoin pour obtenir le nom de la liste.
Je dois encore ajouter un tableau récapitulatif pour chaque Sample[i] et l'ajouter avec le graphique à pptx. Est-ce possible?
win = New window("Graphs", lub = Lineup Box (Ncol(3)));
//selecting the list of samples or variables for which a graph is required
Samples = (Associative Array(Column (dt4, "Sample"))<<GET keys=""></GET>
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListVotre dernier message avait
gb<< save picture(Eval Insert("C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););Merci de regarder votre syntaxe. Pour i=1 où Ages[i] = 12, cela produirait la chaîne "C:\temp\1.png12.jpg" .
gb<< save picture("C:\temp\Age_" ||Char(Ages[i])||".jpg",JPEG););F ou i=1 où Ages[i] = 12, cela produirait la chaîne "C:\temp\Age_12.jpg"
Votre exemple original utilisait des valeurs uniques de la colonne :age comme liste.Si la sauvegarde ne fonctionne pas et que cela n'est pas dû à une mauvaise syntaxe, les valeurs de votre liste ont peut-être des symboles qui ne peuvent pas être un nom Windows valide. Je n'ai pas ouvert votre lien référencé jusqu'à maintenant. Si vous utilisez p3icli pour créer pptx, vous pouvez utiliser les commandes p3icli pour le titre et les légendes des noms complexes ou des commentaires. J'ai utilisé cette méthode pour rédiger des rapports sur les limites de contrôle d'audit :
- créer une liste de commandes p3icli, j'ai appelé cmdlist, puis pour chacune j'insère dans cmdlist les commandes p3icli pour
- pour insérer une nouvelle diapositive ou modèle en double
- une commande pour un complexe titre qui fournit des informations sur les paramètres de contexte, les dates des données, etc. sur le graphique à afficher
- une commande pour insérer l'image en utilisant des noms simples comme fid1 ou fid2
- une commande pour une légende basée sur les analyses, si les limites sont trop lâches ou trop serrées, etc.
J'ai écrit ce plan pour illustrer l'utilisation des options de titre et de légende de p3icli au lieu d'utiliser des noms de fichiers enregistrés.
Si vous avez besoin d'utiliser une alternative pour p3icli, ce n'est pas le bon forum, veuillez envoyer un message privé.
Après avoir examiné votre liste, vous ne trouvez pas de symboles inhabituels comme @ # % ( ) - ^ dans votre liste, alors vous devez fournir un extrait de votre code JSL réel et le message d'erreur.
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListCela fonctionne certainement mais ce n'est pas ce que je veux. Je voudrais avoir l'image comme lors de l'enregistrement de l'image <<Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListJe pensais à quelque chose comme ce qui suit, mais maintenant je réalise que ce n'est probablement pas ce que vous voulez car il ne capture pas les axes.
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
gb = dt2 << Graph Builder(
Size(800, 600),
Variables( X( :weight ), Y( :height ), Wrap( :age ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
dt = gb << make into data table();
for each row(dt,
img = :graph;
img << save image(Eval Insert("$DOCUMENTS/BigClass^char(:age)^.png"));
);
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau List@XanGregg
Comment arbitreriez-vous ensuite chaque table ? Comment enregistreriez-vous ensuite chaque tableau dans une image avec le nom de la liste ?
Pourriez-vous montrer comment vous feriez cela dans cet exemple de grande classe ?
Merci
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau List@gzmorgan0
Merci pour le conseil. Cela fonctionne sous cet exemple pour Big Class. Cependant, cela ne fonctionne pas sur mon scrypt.
J'ai essayé les deux commandes et seule la première fonctionne pour mon script mais ne remplace que ^i^ en tant que nombre et non Nom/Caractère, ce que j'ai en tant que liste. La deuxième commande fonctionne bien pour l'exemple Big Class, donc peut-être que Char() n'est pas applicable pour les noms ?
gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));
//and also
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
J'ai également essayé d'utiliser la fonction Char() sous la première ligne de commande mais cela ne fonctionne pas car le "||" ne semble pas fonctionner pour Eval Insert().
C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););gb<< save picture(Eval Insert("
Savez-vous comment contourner cela ?
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListVous avez besoin d'une fonction Char() autour de Ages[i]. Les valeurs de votre tableau associatif Ages sont numériques.Notez que le script ci-dessous écrit dans le répertoire c:\temp\. De plus, la déclaration commentée fonctionnera également.Vous devez fermer votre instruction Append() avant l'instruction save.
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
//gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));<BR />
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
Re : Comment enregistrer chaque graphique du générateur de graphiques dans un fichier image avec le titre du tableau ListEst-ce que "gb << Make Into Data Table()" aide ? Il crée une nouvelle table de données avec une colonne d'images.