Comment puis-je implémenter en utilisant JSL?Salut à tous,
Comment implémenter les étapes décrites dans Excel (ci-joint) à l'aide de JSL? J'ai également joint un script JSL qui pourrait être utile pour réaliser certaines des étapes intermédiaires que je tente d'implémenter à l'aide de JSL. Vous pouvez donc le copier s'il est pertinent et utile.
Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where(
:Case == "C",
Fit Special( yTran( "Log" ), {Line Color( "Black" )} )
),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where(
:Case == "E",
Fit Special( yTran( "Log" ), {Line Color( "Blue" )} )
),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
)Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
J'essaie de faire un tracé log-linéaire (log sur l'axe Y) pour un cas = A / B / C & une seconde condition est remplie dans la colonne2 == "20/30/40". J'ai posté le script ci-dessous (2 manières légèrement différentes) mais j'obtiens une erreur comme ci-dessous. Où vais-je mal?
Inattendu "et le RPC". Peut-être qu'il manque un "," ou ")".
Essayer d'analyser les arguments de la fonction "Fit Where".
Ligne 6 colonne 28:: cas == "A" ►et colonne2 == "20",
1. 1ère voie:
Bivarié (
Y (: Nom ("Y1")),
X (: X1),
// Fit Special (yTran ("Journal"), {Couleur de trait ({213, 72, 87})}),
Fit Où (
: Case == "A" et Column2 == "20",
Fit Special (yTran ("Journal"), {Couleur de trait ("Vert foncé")}),
),
SendToReport (
Envoi(
{},
"1",
ScaleBox,
{Min (60,936357421875), Max (81,283232421875), Inc (2),
Tiques mineures (1), rangée d'étiquettes (
{Afficher la grille principale (1), Afficher la grille secondaire (1)}
)}
),
Envoi(
{},
"2",
ScaleBox,
{Scale ("Log"), Format ("Scientifique", 11), Min (0.0000002),
Max (0.000634968347287381), Inc (1), Tiques mineures (1),
Ligne d'étiquette (
{Afficher la grille principale (1), Afficher la grille secondaire (1), Définir la taille de la police (12)}
)}
)
)
)
2 2ème voie:
Bivarié (
Y (: Nom ("Y1")),
X (: X1),
// Fit Special (yTran ("Journal"), {Couleur de trait ({213, 72, 87})}),
Fit Où (
: Affaire == "A"
: Column2 == "20",
Fit Special (yTran ("Journal"), {Couleur de trait ("Vert foncé")}),
),
SendToReport (
Envoi(
{},
"1",
ScaleBox,
{Min (60,936357421875), Max (81,283232421875), Inc (2),
Tiques mineures (1), rangée d'étiquettes (
{Afficher la grille principale (1), Afficher la grille secondaire (1)}
)}
),
Envoi(
{},
"2",
ScaleBox,
{Scale ("Log"), Format ("Scientifique", 11), Min (0.0000002),
Max (0.000634968347287381), Inc (1), Tiques mineures (1),
Ligne d'étiquette (
{Afficher la grille principale (1), Afficher la grille secondaire (1), Définir la taille de la police (12)}
)}
)
)
)
Merci,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?Bonjour Jim, j'ai essayé les deux (un à la fois)
dt << Marqueur par colonne (: Identifiant de tranche);
dt << Marqueur par groupe (: Identifiant de tranche);
avant de faire les parcelles comme ci-dessous, mais ça ne fait pas ce que je veux
Biv = dtStack << Bivarié (
Y (...
Merci,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?Merci beaucoup Jim pour vos explications claires. Laissez-moi l'essayer.
Cordialement,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?En ce qui concerne votre fonction Open (), si votre table de données JMP est enregistrée dans votre dossier Documents et qu'elle s'appelle "nom_fichier.jmp", elle est correcte.
Le code
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
utilise simplement la plate-forme Stack Data Table
Tables ==> Pile
Vous pouvez l'exécuter manuellement sur votre table de données et obtenir les mêmes résultats que le script. Mais fondamentalement, il y a 2 ensembles de colonnes à empiler, x1, x2, x3 et les mêmes variantes y de y1, y2, y3. Ainsi, la spécification des 6 colonnes dans la spécification Columns () et la configuration de Number of Series (2). L'élément Contigous indique de scinder la liste au milieu, plutôt que d'alterner x1, y1 ..... etc. Lorsque vous empilez un ensemble de colonnes, les mesures sont placées dans une nouvelle colonne nommée Données. Et les noms de colonne sont placés dans une nouvelle colonne nommée Label. Comme nous empilons 2 ensembles de colonnes, il existe des colonnes Données et Données 2, Étiquette et Étiquette 2.
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Ce code supprime simplement les colonnes Label et Label 2, car nous n'en avons pas besoin, puis Data et Data 2 sont renommés en noms plus significatifs.
Vous pouvez en savoir plus sur Stack Platform dans le document Using JMP.
Aide ==> Livres ==> Utilisation de JMP
Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
J'ai ouvert mon fichier Excel et enregistré sous forme de feuille de calcul JMP. Alors j'utilise
dt = ouvrir ( "C: \ Utilisateurs \ nom_utilisateur \ Documents \ nom_fichier.jmp" )
Ce format est-il correct?
Je pense que je ne suis pas en mesure d'obtenir l'intrigue après avoir implémenté votre code, j'ai besoin de mieux comprendre votre code car mes paramètres de jeu de données sont un peu différents dans les noms de paramètres, etc.
Pouvez-vous s'il vous plaît expliquer ce que sont "Label", "Label2", Data, Data 2? Dois-je les définir explicitement dans mon jeu de données? Pour l'instant, ils ne sont pas définis. Je ne les vois pas non plus définis dans les tables de jeux de données que vous avez créées.
dtStack = dtSumm << Empiler (
colonnes (: x1,: x2,: x3,: y1,: y2,: y3),
Colonne d'étiquette source ( "Étiquette" ),
Colonne de données empilées ( "Les données" ),
prénom ( "Colonnes non empilées" ) (Keep (: Case)),
Nombre de séries ( 2 ),
Contigu
)
// Nettoyer la table de données
dtStack << supprimer des colonnes ({ "Étiquette" , "Label 2" });
dtStack: Data << nom du décor ( "x1_x2_x3" )
dtStack: Data 2 << nom du décor ( "y1_y2_y3" )
Cordialement,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?À quoi ressemble votre feuille de calcul? S'il s'agit d'une table de lignes et de colonnes ..... semblable à une table de données JMP, la syntaxe est la suivante:
dt = open("<PATH to="" your="" excel="" file="">");</PATH>Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
Oh! Je vois… dommage que je ne m'en rende pas compte. Merci beaucoup d'avoir expliqué cela. Cela sonne bien! Je lis les données d'un fichier Excel dans JMP. Y a-t-il un moyen intelligent de faire cela?
Cordialement,
Un d
Re: Comment puis-je mettre en œuvre en utilisant JSL?OK .... J'aurais dû être plus clair. Tout le code que j'ai fourni et qui crée la table de données a été mis là, juste pour pouvoir créer un exemple de table de données pour illustrer le code. Vous pouvez entrer le tableau de données directement à partir d'Excel ou de n'importe quel endroit où vous avez vos données. Une fois que vous avez lu vos données, la seule partie nécessaire du script est nécessaire:
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);
BTW, quelle méthode utilisez-vous pour entrer dans les données? Si cela vous pose un problème, nous pouvons également y travailler.
Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
Merci pour votre solution rapide! J'ai quelques autres questions, si vous pouvez aider s'il vous plaît.
Je me demande s’il s’agit d’un script JSL qui évoluera facilement pour de grands ensembles de données.
1. Il semble que vous ayez codé en dur le nombre d'instances de chaque cas "A", "B", .... "F".
C'est bien de le faire si vous avez 2 ou 3 instances de chaque cas, mais que se passe-t-il si j'ai plus d'une centaine d'instances chacune pour "A", "B" .. "F". Ensuite, je dois répéter "A" des centaines de fois dans le code ci-dessous?
Définir des valeurs (
{ "UNE" , "UNE" , "UNE" , "B" , "B" , "B" , "C" , "C" , "C" , "RÉ" , "RÉ" , "RÉ" , "E" , "E" ,
"E" , "F" , "F" , "F" }
2 Vous avez également entré chacune des valeurs des variables de colonne: "x1", "x2" ... "" y3 ", comme indiqué ci-dessous. Encore une fois, j'ai> 1000 lignes de données pour chacune des variables. Ensuite, la saisie de toutes les valeurs de chaque variable semble plus lourde.
Nouvelle colonne ( "x1" ,
Numérique,
"Continu" ,
Format ( "Meilleur" , 12 ),
Définir des valeurs (
[ 1.61428690437666 , 10.1190080125253 , 6.73662807021899 , 8.01466805846589 ,
6.68158041069847 , 5.7112128821412 , 2.84688009253613 , 8.24143884561082 ,
7.93797713835799 , 7.60500406538651 , 6.10376724167353 , 7.49901866647003 ,
6.75689551558008 , 8.47900118679714 , 8.31129239105815 , 2.25776032554558 ,
3.47918899345697 , 7.54113635144146 ]
Pouvez-vous s'il vous plaît aider à me faire savoir s'il existe un moyen moins lourd d'implémenter cela pour de plus grands ensembles de données?
Cordialement,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
Merci beaucoup pour votre réponse détaillée. Je l'apprécie, laissez-moi l'essayer et je vous le ferai savoir.
Cordialement,
UN D
Re: Comment puis-je mettre en œuvre en utilisant JSL?Voici un script simple qui génère les tables et la sortie que vous voulez

Names Default To Here( 1 );
//dt = Current Data Table();
dt = New Table( "Example",
Add Rows( 18 ),
New Column( "Case",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "B", "B", "B", "C", "C", "C", "D", "D", "D", "E", "E",
"E", "F", "F", "F"}
)
),
New Column( "x1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[1.61428690437666, 10.1190080125253, 6.73662807021899, 8.01466805846589,
6.68158041069847, 5.7112128821412, 2.84688009253613, 8.24143884561082,
7.93797713835799, 7.60500406538651, 6.10376724167353, 7.49901866647003,
6.75689551558008, 8.47900118679714, 8.31129239105815, 2.25776032554558,
3.47918899345697, 7.54113635144146]
)
),
New Column( "x2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[5.47938474920207, 6.18766439511594, -6.23767012529314, 2.09002457182833,
4.8113689086524, 7.03651072603935, -3.04550198990374, 11.8452893346908,
-3.05733149292515, 1.30049361512582, 1.01507442873964, 2.09317649939774,
7.41286830274582, 7.34393706953047, 6.35773586672512, 6.45581826439945,
14.9562095399741, 10.0634660675686]
)
),
New Column( "x3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[11.2656869903562, 2.97417375436776, 2.7691367152201, 9.75641926280114,
9.70879299538533, 7.16035571615696, 9.79872763007834, 2.99361815483094,
7.34989095258795, 11.8347155967071, 13.840944548243, 6.91213509473278,
12.9829334337807, 4.69016477226892, 6.5541527241742, 10.449257706405,
8.71860875295487, 2.75703552707507]
)
),
New Column( "y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000021187715823, 0.0000000007070458434, 0.0000000021305415897,
0.000000002187751479, 0.0000000015163549964, 0.0000000006662765716,
0.0000000013568530851, 0.0000000022185225971, 0.0000000008126367887,
0.0000000014370349256, 0.0000000025500410724, 0.0000000019674810787,
-0.0000000005869971784, 1.82706897276242e-10, 0.0000000014877347984,
6.66831811738687e-11, 0.000000001044052589, 0.0000000019169076496]
)
),
New Column( "y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000111634035809, 0.0000000150934383918, 0.0000000092632031811,
0.0000000014897580792, 0.0000000129447047918, 0.0000000038471184132,
0.000000020378302554, 0.0000000084939824652, 0.0000000306867238143,
0.0000000083704926078, -0.0000000019845073029, 0.0000000221987482462,
-1.12731592825071e-10, 0.0000000341691546291, 0.0000000243189078007,
0.0000000142112672565, 0.0000000157219085064, 0.0000000163609065787]
)
),
New Column( "y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.0000001356080410826, 0.0000003110230604448, 0.0000000731675260394,
0.0000000683020170167, 0.0000000166660984052, 0.0000001245784167858,
0.0000001917424143272, 0.0000000592217777822, 0.0000000682651021339,
0.0000001310868753601, 0.0000000929550618751, 0.0000001752103336127,
0.0000000988598859477, 0.0000000990272186345, 0.000000121745118966,
0.0000001243361078368, 0.0000001992144095096, 0.000000090951358824]
)
)
);
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);Re: Comment puis-je mettre en œuvre en utilisant JSL?Salut Jim,
Comment sélectionner un style de marqueur différent (*, z, x etc.) et une couleur de marqueur (rouge / bleu) pour chaque cas (A / B / C) et l'implémenter à l'aide de JSL? Je peux attribuer manuellement un style et une couleur de marqueur à chaque ligne de la table JMP empilée, mais cela peut-il être fait facilement en JSL?