Connexion de points de données à l'aide de JSLSalut
J'essaie de connecter des points de données dans un graphique dans un certain ordre (comme créer un tracé en diamant, etc.). Lorsque je me connecte manuellement à l'aide de la ligne et que j'exporte le script, je vois qu'il utilise la fonction de ligne avec les coordonnées (X, Y). Quelqu'un peut-il m'aider s'il vous plaît
1. Je suppose que ceux (X, Y) sont les coordonnées du cadre ?
2. Étant donné que 1. est vrai, comment puis-je découvrir ceux (X, Y) en utilisant JSL ? Plus précisément, avez-vous besoin de connaître la syntaxe pour extraire le cadre (X, Y) pour chaque point de données du graphique ?
Connaissez-vous un autre moyen efficace de connecter des points de données dans JMP ?


Merci beaucoup
Automatisation et scriptsPersonnalisation de masseRe : Connecter des points de données à l'aide de JSLPas de mot pour apprécier toute votre aide. Mille mercis.
Re : Connecter des points de données à l'aide de JSLJ'ai un peu ajusté votre script, mais le problème principal est que votre code suppose que vous avez toutes les combinaisons de Group1, Group2 et Group3, et que dans les données que vous avez fournies, vous ne le faites pas, donc le programme ne trouve aucune donnée à analyser. .
names default to here(1);
dtt = Current Data Table();
Summarize( dtt, byGroup1 = by( :var1 ) );
Summarize( dtt, byGroup2 = by( :var2 ) );
Summarize( dtt, byGroup3 = by( :var3 ) );
For( ii = 1, ii < N Items( byGroup1 ), ii++,
For( jj = 1, jj < N Items( byGroup2 ), jj++,
For( kk = 1, kk < N Items( byGroup3 ), kk++,
dtt << select where( :var1 == byGroup1[ii] & :var2 == byGroup2[jj] & :var3 == byGroup3[kk] );
show(ii,jj,kk,bygroup1[ii],bygroup2[jj],bygroup3[kk]);
sel = dtt << get selected rows;
If( n rows(sel) > 0,
show("inside",ii,jj,kk);
dt = dtt << subset( selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue", "Red", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
Line( xMatrix, yMatrix );
);
););
)
)
);Re : Connecter des points de données à l'aide de JSLMerci beaucoup pour l'aide. Je l'apprécie grandement. J'ai encore une question et je vous serai reconnaissant si vous m'aidez.
J'ai une grande table composée de plusieurs sous-ensembles (la table que je vous ai envoyée) et contrôlée par trois autres colonnes supplémentaires. J'essayais de créer un sous-ensemble de tables (chacune comme celle que je vous ai envoyée) et d'appliquer le code ci-dessous dans trois boucles For. D'une manière ou d'une autre, la génération de table de sous-ensemble ne fonctionne pas.
dtt = Current Data Table();
Summarize( dtt, byGroup1 = by( :var1 ) );
Summarize( dtt, byGroup2 = by( :var2 ) );
Summarize( dtt, byGroup3 = by( :var3 ) );
For( ii = 1, ii < N Items( byGroup1 ), ii++,
For( jj = 1, jj < N Items( byGroup2 ), jj++,
For( kk = 1, kk < N Items( byGroup3 ), kk++,
dt = dtt << subset(
select where( :var1 == byGroup1[ii] & :var2 == byGroup2[jj] & :var3 == byGroup3[kk] )
);
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ), Inc( 0.1 ),
Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue", "Red", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
Line( xMatrix, yMatrix );
);
);
);
);
);
| axe x |
axe y |
étiquette |
légende |
var1 |
var2 |
var3 |
| 2.385649 |
2.260832 |
un |
ensemble1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.261566 |
un |
ensemble2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.291898 |
un |
ensemble3 |
con1 |
con11 |
con111 |
| 2.297858 |
2.445948 |
b |
ensemble1 |
con1 |
con11 |
con111 |
| 2.297908 |
2.446336 |
b |
ensemble2 |
con1 |
con11 |
con111 |
| 2.331846 |
2.475788 |
b |
ensemble3 |
con1 |
con11 |
con111 |
| 2.385649 |
2.649821 |
c |
ensemble1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.649944 |
c |
ensemble2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.674239 |
c |
ensemble3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.730171 |
d |
ensemble1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.730239 |
d |
ensemble2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.753243 |
d |
ensemble3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.649821 |
e |
ensemble1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.649944 |
e |
ensemble2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.674239 |
e |
ensemble3 |
con1 |
con11 |
con111 |
| 2.905865 |
2.445948 |
F |
ensemble1 |
con1 |
con11 |
con111 |
| 2.90615 |
2.446336 |
F |
ensemble2 |
con1 |
con11 |
con111 |
| 2.925915 |
2.475788 |
F |
ensemble3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.260832 |
g |
ensemble1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.261566 |
g |
ensemble2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.291898 |
g |
ensemble3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.181713 |
h |
ensemble1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.182677 |
h |
ensemble2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.213788 |
h |
ensemble3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.445948 |
je |
ensemble1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.446336 |
je |
ensemble2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.475788 |
je |
ensemble3 |
con1 |
con11 |
con111 |
| 2.624214 |
2.486915 |
un |
ensemble1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.487723 |
un |
ensemble2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.521088 |
un |
ensemble3 |
con2 |
con22 |
con222 |
| 2.527644 |
2.690543 |
b |
ensemble1 |
con2 |
con22 |
con222 |
| 2.527699 |
2.69097 |
b |
ensemble2 |
con2 |
con22 |
con222 |
| 2.565031 |
2.723367 |
b |
ensemble3 |
con2 |
con22 |
con222 |
| 2.624214 |
2.914803 |
c |
ensemble1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.914938 |
c |
ensemble2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.941663 |
c |
ensemble3 |
con2 |
con22 |
con222 |
| 2.84622 |
3.003188 |
d |
ensemble1 |
con2 |
con22 |
con222 |
| 2.846542 |
3.003263 |
d |
ensemble2 |
con2 |
con22 |
con222 |
| 2.880352 |
3.028567 |
d |
ensemble3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.914803 |
e |
ensemble1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.914938 |
e |
ensemble2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.941663 |
e |
ensemble3 |
con2 |
con22 |
con222 |
| 3.196452 |
2.690543 |
F |
ensemble1 |
con2 |
con22 |
con222 |
| 3.196765 |
2.69097 |
F |
ensemble2 |
con2 |
con22 |
con222 |
| 3.218507 |
2.723367 |
F |
ensemble3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.486915 |
g |
ensemble1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.487723 |
g |
ensemble2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.521088 |
g |
ensemble3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.399884 |
h |
ensemble1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.400945 |
h |
ensemble2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.435167 |
h |
ensemble3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.690543 |
je |
ensemble1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.69097 |
je |
ensemble2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.723367 |
je |
ensemble3 |
con2 |
con22 |
con222 |
| 2.743496 |
2.599957 |
un |
ensemble1 |
con3 |
con32 |
con33 |
| 2.743649 |
2.600801 |
un |
ensemble2 |
con3 |
con32 |
con33 |
| 2.781123 |
2.635683 |
un |
ensemble3 |
con3 |
con32 |
con33 |
| 2.642537 |
2.81284 |
b |
ensemble1 |
con3 |
con32 |
con33 |
| 2.642594 |
2.813286 |
b |
ensemble2 |
con3 |
con32 |
con33 |
| 2.681623 |
2.847156 |
b |
ensemble3 |
con3 |
con32 |
con33 |
| 2.743496 |
3.047294 |
c |
ensemble1 |
con3 |
con32 |
con33 |
| 2.743649 |
3.047436 |
c |
ensemble2 |
con3 |
con32 |
con33 |
| 2.781123 |
3.075375 |
c |
ensemble3 |
con3 |
con32 |
con33 |
| 2.975594 |
3.139697 |
d |
ensemble1 |
con3 |
con32 |
con33 |
| 2.97593 |
3.139775 |
d |
ensemble2 |
con3 |
con32 |
con33 |
| 3.011277 |
3.166229 |
d |
ensemble3 |
con3 |
con32 |
con33 |
| 3.240016 |
3.047294 |
e |
ensemble1 |
con3 |
con32 |
con33 |
| 3.240306 |
3.047436 |
e |
ensemble2 |
con3 |
con32 |
con33 |
| 3.26574 |
3.075375 |
e |
ensemble3 |
con3 |
con32 |
con33 |
| 3.341745 |
2.81284 |
F |
ensemble1 |
con3 |
con32 |
con33 |
| 3.342073 |
2.813286 |
F |
ensemble2 |
con3 |
con32 |
con33 |
| 3.364802 |
2.847156 |
F |
ensemble3 |
con3 |
con32 |
con33 |
| 3.240016 |
2.599957 |
g |
ensemble1 |
con3 |
con32 |
con33 |
| 3.240306 |
2.600801 |
g |
ensemble2 |
con3 |
con32 |
con33 |
| 3.26574 |
2.635683 |
g |
ensemble3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.50897 |
h |
ensemble1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.510079 |
h |
ensemble2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.545856 |
h |
ensemble3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.81284 |
je |
ensemble1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.813286 |
je |
ensemble2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.847156 |
je |
ensemble3 |
con3 |
con32 |
con33 |
Re : Connecter des points de données à l'aide de JSLSi un simple script graphique est ajouté à l'objet Graph Builder, vous pouvez obtenir ce que vous voulez

names default to here(1);
// Create the data table
dt = New Table( "Example",
Add Rows( 27 ),
New Script(
"Source",
Data Table( "Untitled 60" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "x axis",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[2.3856, 2.3858, 2.4184, 2.2979, 2.2979, 2.3318, 2.3856, 2.3858, 2.4184,
2.5875, 2.5878, 2.6185, 2.8174, 2.8177, 2.8398, 2.9059, 2.9062, 2.9259,
2.8174, 2.8177, 2.8398, 2.5875, 2.5878, 2.6185, 2.5875, 2.5878, 2.6185]
)
),
New Column( "y axis",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[2.2608, 2.2616, 2.2919, 2.4459, 2.4463, 2.4758, 2.6498, 2.6499, 2.6742,
2.7302, 2.7302, 2.7532, 2.6498, 2.6499, 2.6742, 2.4459, 2.4463, 2.4758,
2.2608, 2.2616, 2.2919, 2.1817, 2.1827, 2.2138, 2.4459, 2.4463, 2.4758]
)
),
New Column( "label",
Character,
"Nominal",
Set Values(
{"a", "a", "a", "b", "b", "b", "c", "c", "c", "d", "d", "d", "e", "e",
"e", "f", "f", "f", "g", "g", "g", "h", "h", "h", "i", "i", "i"}
)
),
New Column( "legend",
Character,
"Nominal",
Set Values(
{"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3",
"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3",
"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3"}
)
)
);
// Draw the scatterplot
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ),
Inc( 0.1 ), Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue","Red","Green"};
fill pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color(colorList[i]);
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
line( xMatrix, yMatrix );
);
);
Re : Connecter des points de données à l'aide de JSLvoici les données
| axe x | axe y | étiquette | légende |
| 2,3856 | 2.2608 | un | ensemble1 |
| 2,3858 | 2.2616 | un | ensemble2 |
| 2.4184 | 2.2919 | un | ensemble3 |
| 2,2979 | 2.4459 | b | ensemble1 |
| 2,2979 | 2.4463 | b | ensemble2 |
| 2.3318 | 2,4758 | b | ensemble3 |
| 2,3856 | 2,6498 | c | ensemble1 |
| 2,3858 | 2,6499 | c | ensemble2 |
| 2.4184 | 2,6742 | c | ensemble3 |
| 2,5875 | 2.7302 | d | ensemble1 |
| 2,5878 | 2.7302 | d | ensemble2 |
| 2,6185 | 2,7532 | d | ensemble3 |
| 2.8174 | 2,6498 | e | ensemble1 |
| 2.8177 | 2,6499 | e | ensemble2 |
| 2.8398 | 2,6742 | e | ensemble3 |
| 2.9059 | 2.4459 | F | ensemble1 |
| 2.9062 | 2.4463 | F | ensemble2 |
| 2.9259 | 2,4758 | F | ensemble3 |
| 2.8174 | 2.2608 | g | ensemble1 |
| 2.8177 | 2.2616 | g | ensemble2 |
| 2.8398 | 2.2919 | g | ensemble3 |
| 2,5875 | 2.1817 | h | ensemble1 |
| 2,5878 | 2.1827 | h | ensemble2 |
| 2,6185 | 2.2138 | h | ensemble3 |
| 2,5875 | 2.4459 | je | ensemble1 |
| 2,5878 | 2.4463 | je | ensemble2 |
| 2,6185 | 2,4758 | je | ensemble3 |
J'essaie de connecter des points de données pour chaque ensemble, mais sans inclure le groupe "i" (les données du centre). un exemple d'instantané est ci-dessous

Merci d'avance pour votre aide.
Re : Connecter des points de données à l'aide de JSLPouvez-vous s'il vous plaît fournir les données à partir desquelles vous créez les graphiques ?
Re : Connecter des points de données à l'aide de JSLMerci pour votre contribution mais je n'ai pas réussi à trouver ce que je cherchais. Je vois différentes fonctions de ligne et tout s'affiche pour une coordonnée donnée. Ma question portait davantage sur la façon de trouver ces coordonnées [cadre et non données (x, y)] pour un point de données donné dans le graphique. J'ai pu me connecter à l'aide du générateur de graphiques, mais il connecte également les points de données centraux dont je ne veux pas. Si j'exclus, ces points de données ne sont pas affichés, ce que je ne veux pas non plus. Je peux toujours reproduire le premier ensemble de points de données pour fermer le losange, mais je ne sais pas comment je peux toujours afficher les points de données au centre sans les connecter. Merci beaucoup.

Re : Connecter des points de données à l'aide de JSLTout d’abord, consultez Aide > Index des scripts et recherchez la fonction Line(). Accédez ensuite à Aide > Bibliothèque de documentation JMP > Guide de script et recherchez-le à nouveau pour une explication plus détaillée et plus d'exemples.