Ligne de référenceChère communauté,
Existe-t-il un script que je peux utiliser pour ajouter une ligne de référence différente à un tableau de distribution multiple. J'ai 4000 histogrammes et chacun d'eux a une valeur de référence différente.
Ton aide est grandement appréciée.
MerciRe : Ligne de référenceMerci pour la réponse rapide.
Re : Ligne de référenceTous les affichages de la plate-forme ont une structure arborescente derrière eux, ce qui permet à JSL de pointer vers n'importe quel objet particulier et de transmettre des messages à l'objet.Si vous accédez à l'un des triangles gris dans un affichage de sortie, faites un clic droit dessus et sélectionnez "Afficher la structure arborescente", vous verrez les objets.Vous pouvez les référencer en sélectionnant le décalage par rapport à chaque objet.Le
rbiv<SPAN class="token punctuation">[</SPAN><SPAN class="token function">j</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN>
est un décalage pointant vers un AxisBox() dans l'affichage.Ce codage est très énigmatique.Je pense que si vous examinez le code suivant, vous verrez que ce qu'il fait consiste à parcourir chacune des 5 sorties d'histogramme, à trouver la boîte du premier axe () dans chacun de ces affichages et à transmettre le message à Ajouter une ligne de référence. .C'est la même chose que la notation cryptique, mais sous une forme qui renvoie par son nom à l'objet à modifier.
//Open datatable and make report
dt = Open( "$SAMPLE_DATA/Michelson.jmp" );
Biv = dt << Distribution(
Continuous Distribution( Column( :Velocity ) ),
By( :Trial# )
);
rbiv = Biv << Report();
// Here is created a list of all by-groups and a matrix with
//means of each group to be used as a refline.
//A custom list can be used instead using the same approach
Summarize(
groups = by( :Trial# ),
reflines = Mean( :Velocity )
);
n = N Items( groups );
//Add reference lines
For( j = 1, j <= n, j++,
//rbiv[j][1][1][1][1][1][1][1][1] <<
rbiv[j][AxisBox(1)]<<
add ref line( reflines[j], solid, "Red" )
);
Re : Ligne de référenceQue fait ou signifie la ligne de code suivante ?Comment puis-je savoir combien de [1]s sont nécessaires ?La raison pour laquelle je demande est que je veux pouvoir ajouter une ligne de référence en utilisant des variables dans les propriétés de la fonction de ligne de référence.
rbiv<SPAN class="token punctuation">[</SPAN><SPAN class="token function">j</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN>
Re : Ligne de référence<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai le même problème. J'ai un proc gplot qui trace 35 graphiques différents pour différents identifiants à l'aide d'une instruction by. Existe-t-il un moyen de spécifier une ligne de référence horizontale différente dans chaque tracé ? Et est-il également possible d'afficher la valeur de cette ligne de référence en haut ou en bas de la ligne ?
Merci
Ligne de référenceJe ne suis pas sûr de ce qu'est "Verlauf ETA A6" pour le type d'objet. Si c'est le nom de l'objet de création de graphique, cela devrait fonctionner, mais si c'est le nom de la table de données, cela ne fonctionne pas. Je pense qu'il est plus facile d'attribuer une variable à la fenêtre du générateur de graphiques (comme ci-dessus
En plus, ça devrait marcher. J'ai modifié mon script pour récupérer les reflines d'une table séparée en utilisant votre syntaxe et cela a fonctionné.
Je pense également que vous devrez peut-être vous assurer que la bonne table est la "table de données actuelle".
Re : Ligne de référenceCela m'a aidé, mais j'ai toujours une erreur.
J'ai 2 tableaux différents, un tableau que j'utilise pour le graphique, dans le second il y a les dates (rapport "Verlauf Eta A6") et les étiquettes pour les lignes de référence (table de données "") - J'ai déjà changé le format en numéro de date longue jmp :
for(i=1,i<=nrows(data Table ("Ereignisse")),i++, report("Verlauf ETA A6")[Axis Box(1)] << add ref line (column(data Table ("Ereignisse"),"Datum"),Solid, "Purple", column(data Table ("Ereignisse"),"Bezeichnung") ));
mais le journal renvoie ce qui suit (pas très utile)
In the following script, error marked by /*###*/ For( ::i = 1, ::i <= N Rows( Data Table( "Ereignisse" ) ), ::i++, Report( "Verlauf ETA A6" )[Axis Box( 1 )] << /*###*/ add ref line( Column( Data Table( "Ereignisse" ), "Datum" )[::i], Solid, "Purple", Column( Data Table( "Ereignisse" ), "Bezeichnung" )[::i] ) /*###*/ )
Ligne de référenceLe nombre étrange est la représentation interne par JMP d'une valeur datetime (en fait, le nombre de secondes depuis une date de référence que j'oublie toujours...).
VLine() ne semble pas avoir d'argument d'étiquette facultatif. Mais vous pouvez remplir le graphique avec des lignes verticales en utilisant Add ref line() dans une boucle for. Utilisez Summarize() pour obtenir des listes et des matrices des étiquettes et des dates de la table de données. Voir l'exemple de script ci-dessous.
// Make example table
dt=New Table( "Test",
Add Rows( 6 ),
New Column( "Group",Nominal, Character, Set Values(
{"Group A", "Group A", "Group A", "Group B", "Group B", "Group B"})),
New Column( "Data", Numeric,
Set Values( [1, 2, 3, 2, 3, 4] )),
New Column( "Date", Numeric,
Format( "d-m-y", 12 ),
Set Values([3166214400, 3166300800, 3166387200, 3166214400, 3166300800, 3166387200])),
New Column( "Label",Nominal,Character,
Set Values( {"A", "B", "C", "A", "B", "C"} )));
// Make list of dates and labels
Summarize(dlist=by(:Date),dlist=mean(:Date));
Summarize(llist=by(:Label));
// Make graph
gb=Graph Builder(
Variables( X( :Date ), Y( :Data ), Overlay( :Group ) ),
Elements( Points( X, Y, Legend( 1 ) ) ));
//Add vertical reflines based on dates in Column date
for(i=1,i<=nrows(dlist),i++,
report(gb)[Axis Box(1)] << add ref line (dlist[i],Solid, "Purple", llist[i] ));
J'espère que ça aide.
Re : Ligne de référenceBonjour,
J'ai un problème similaire, j'ai un graphique et sur l'axe des x il y a une date (comme dmy), et je veux plusieurs lignes de référence verticales sur l'axe des a. Aujourd'hui, j'ai utilisé un script avec v-line, mais là j'ai eu la ligne, mais aucune étiquette dessus.
Les dates des lignes de référence et du label sont stockées dans une table de données (date de colonne (format dmy), label de colonne). Mais le refline manuel utilise à la place de la date un nombre comme : 33962554400 (et je sais que c'est une date...)
Graph Builder( Size( 696, 688 ), Show Control Panel( 0 ), Variables( X( :BL, Size( 212 ) ), Y( :Name( "x" ) ), Group Y( :Name( "s_-x" ) ), Overlay( :Projektklasse_plus ) ), Elements( Points( X, Y, Legend( 6 ) ) ), SendToReport( Dispatch( {}, "BL-date", ScaleBox, {Format( "d.m.y", 10 ), Interval( "Day" ), Inc( 1 ), Add Ref Line( 3396254400, Solid, {255, 0, 0}, "Label ref line 1" ) , Rotated Labels( 1 )} ), Dispatch(.......
mon script vline ressemblait à ceci :
OPR[FrameBox(1)] << add graphics script (pen color("purple"); vline(column(data Table ("CHCharge$"),"CuI") << get values));
mais en fait, je veux des lignes de référence vraiment différentes avec une étiquette, à des dates différentes et le tableau de données avec les dates des lignes de référence contient de plus en plus de dates tout au long de l'année...
Alors, pouvez-vous s'il vous plaît clarifier votre réponse, comment utiliser un tableau de données ?
Merci d'avance.
Re : Ligne de référenceSalut MS,
Merci. Ça marche.
Plus de pouvoir pour toiRe : Ligne de référenceVoici un exemple de script, en supposant que tous les histogrammes se trouvent dans la même fenêtre. Les lignes de référence individuelles sont ici simplement la moyenne du groupe, mais le script peut facilement être adapté à une matrice personnalisée ou à une liste de valeurs, par exemple extraites d'une table.
//Open datatable and make report
dt = Open( "$SAMPLE_DATA/Michelson.jmp" );
Biv = dt << Distribution(
Continuous Distribution( Column( :Velocity ) ),
By( :Trial# )
);
rbiv = Biv << Report();
// Here is created a list of all by-groups and a matrix with
//means of each group to be used as a refline.
//A custom list can be used instead using the same approach
Summarize(
groups = by( :Trial# ),
reflines = Mean( :Velocity )
);
n = N Items( groups );
//Add reference lines
For( j = 1, j <= n, j++,
rbiv[j][1][1][1][1][1][1][1][1] <<
add ref line( reflines[j], solid, "Red" )
);