Bonjour,
1. Je veux savoir comment enregistrer deux graphiques dans une diapositive de ppt.
À l'heure actuelle, mon script enregistre un graphique par diapositive en ppt.
J'ai besoin de comparer deux graphiques dans une seule diapositive. De plus, je génère environ 100 graphiques pour mes données et avoir 100 diapositives en ppt rend difficile l'analyse.
2. comment mettre à l'échelle mes graphiques individuels ?
//******************Open Data table***********************//
dt = Open( "$Downloads\Measure - Subset of JA63025.10A_raw_para_Stacked.jmp" );
//************************ Create new Columns to segregate the test names to group and plot graphs ***********************//
dt << New Column( "Test Number (MSB of Label)",
Character,
Nominal,
Formula( Num( Substr( :Label, Contains( :Label, ":p" ) - Num( 10 ), Contains( :Label, ":p" ) - Num( 6 ) ) ) )
);
dt << New Column( "Test Description", Character, Nominal, Formula( Substr( :Label, Contains( :Label, ":NVM_" ) + Num( 5 ), 100 ) ) );
dt << New Column( "NVM Parameter Name",
Character,
Nominal,
Formula( Substitute/*###*/(Substr( :Label, Contains( :Label, ":NVM_" ) + Num( 5 ), 100 ), "[1]", "") )
);
dt << New Column( "Measurements.",
Character,
Nominal,
Formula(
If( 16600 <= :Name( "Test Number (MSB of Label)" ) <= 16603,
Substitute( :Test Description, "[1]", "_BiasA_Pre_refcell_Erase" ),
If( 16629 <= :Name( "Test Number (MSB of Label)" ) <= 16632,
Substitute( :Test Description, "[1]", "_BiasA_Post_refcell_Erase" )
)
)
)
);
dt << New Column( "Measurements..",
Character,
Nominal,
Formula( If( 10100 <= :Name( "Test Number (MSB of Label)" ) <= 10103, Substitute( :Test Description, "[1]", "" ) ) )
);
dt << New Column( "Measurements...",
Character,
Nominal,
Formula(
If( 10100 <= :Name( "Test Number (MSB of Label)" ) <= 10103,
Empty(),
If( 16600 <= :Name( "Test Number (MSB of Label)" ) <= 16603,
Empty(),
If( 16629 <= :Name( "Test Number (MSB of Label)" ) <= 16632,
Empty(),
Substitute( :Test Description, "[1]", "" )
)
)
)
)
);
//*******************Plot Variability Charts****************************//
dtsum = Current Data Table();
colnames = dtsum << get column names( character );
Show( colnames );
//nw = New Window( "Plots", myVLB = V List Box() );
New Window( "Graphs",
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
gb = Variability Chart(
invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
By( :NVM Parameter Name ),
);
);
//myVLB << append( Report( gb ) );
);
//**********************************Save Script to Data Table ************************//
dt << New script(
"Plots",
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
Variability Chart(
//invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
By( :NVM Parameter Name ),
);
)
);
//*****************************************EXPORT GRAPHS TO PPT**********************************//
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
nn = dt << Variability Chart(
invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
By( :NVM Parameter Name ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 0 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
);
If( i == 23,
nn << Save Presentation( "$Downloads/jmp_example2.pptx" ),
nn << Save Presentation( "$Downloads/jmp_example2.pptx", Append )
);
);
Open( "$Downloads/jmp_example2.pptx" );
La clé de cela est que toutes les zones de contour qui se trouvent dans la zone de contour doivent être copiées en une seule image. Vous devez créer la page souhaitée en utilisant la structure dont vous avez besoin, et la dernière étape consiste à ajouter cette page souhaitée en utilisant << obtenir une image, dans la zone de contour à partir de laquelle vous allez << Enregistrer la présentation.
Je pense en fait que la fonctionnalité est déjà là.J'utilise les boîtes de contour la plupart du temps comme votre SlideBox().Je construis simplement les sorties dont j'ai besoin, puis je les place dans une boîte de contour(), puis je les ajoute au journal que je suis en train de créer.La boîte de contour () est choisie, en raison de la façon dont JMP gère les boîtes de contour avec des fichiers pptx.Le titre de la boîte de contour () devient le titre de la diapositive et "l'image" que j'ai placée dans la boîte de contour () devient le contenu de la diapositive.
Oui, il pourrait y avoir des valeurs par défaut définies pour un "SlideBox ()" qui pourraient le rendre plus facile, mais la plupart du temps, les combinaisons d'objets que j'assemble nécessitent plusieurs boîtes de liste H, boîtes de liste V, boîtes de ligne, etc. pour obtenir l'affichage comme je le veux.
Ce qui serait génial, c'est un objet d'affichage (peut-être l'appeler "slidebox()" ? ) dans lequel vous pouvez placer des objets d'affichage, puis tout ce qui se trouve dans cette boîte de conteneur est traité comme une diapositive (ou une page).
La façon dont je gère généralement cela consiste à faire en sorte que le script crée les objets image appariés au fur et à mesure de leur création.Et puis les annexer au journal.Ainsi, dans le cas ci-dessus où plusieurs graphiques de variabilité sont créés, je créerais une zone de liste V () ou une zone de liste H pour l'itération de boucle 1 et ajouterais le premier graphique d'itération dans la zone de liste (), puis dans la boucle d'itération 2, Je voudrais ajouter la sortie dans la zone de liste, puis copier une image de la zone de liste dans la fenêtre du journal, puis supprimer la zone de liste (), et recommencer pour l'itération 3, etc.
On peut également interroger le journal une fois que tous les tableaux de variabilité sont là, en utilisant XPath, et trouver le nombre de boîtes de contour, et à partir de là, créer vos paires et les placer dans une nouvelle fenêtre de journal qui peut être votre sortie finale de sauvegarde de la présentation
Et je suis sûr que d'autres méthodes sont utilisées
Jim, je pensais la même chose, mais, comme dans ce cas, et si vous ne savez pas combien de graphiques il y aura à l'avance. Comment procéderiez-vous pour créer n paires de graphiques ?
La méthode que j'utilise consiste à créer les diapositives telles que je veux qu'elles soient dans JMP, puis à les copier sous forme d'images dans une fenêtre d'affichage finale, un objet image pour chaque page pptx que je veux.
Vous trouverez ci-dessous un script qui montre un exemple simple.
Names default to here(1);
dt=Open("$SAMPLE_DATA/big class.jmp");
// Create the 2 graphs
fg = dt << Fit Group(
Oneway(
Y( :height ),
X( :sex ),
SendToReport(
Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 463, 305 )} )
)
),
Oneway(
Y( :weight ),
X( :sex ),
SendToReport(
Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 463, 305 )} )
)
),
<<{Arrange in Rows( 1 )}
);
// Place the graphs into a single picture
nw=new window("The Picture", report(fg)[outlinebox(1)]<<GET picture=""></GET>Juste une suggestion:
Empilez les trois colonnes de mesures, puis créez cette figure dans le générateur de graphiques.
C'est tous les chiffres sur une seule diapositive.
