La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Quelqu'un peut-il m'aider à identifier ce que je fais mal ici
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(Y))),
Elements(Line(X, Y, Legend(3), Connection("Curve")), Points(X, Y, Legend(4)))
)
Ma ligne devient plus lisse, je veux qu'elle touche tous les points avec une connexion courbe. J'ai créé le graphique à partir de la console de JMP et cela a bien fonctionné, j'ai même copié le JSL à partir du script de session, mais il s'avère que chaque fois que je l'exécute via JSL, cela me donne un tracé plus lisse.
J'ai une autre question : le lisseur est dessiné sur une colonne numérique continue. J'ai pensé que le fait de le changer en nominal pourrait avoir un impact et il n'a pas été créé du tout (pas de ligne ni de lisseur). La ligne ne fonctionne-t-elle pas sur une colonne numérique de type nominal ?
Automatisation et scriptsAnalyse et modélisation de données de baseExploration et visualisation des donnéesRe : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Vous utilisez une connexion par courbe et non par ligne, ce qui vous permet d'obtenir un lissage. De plus, il se peut qu'il ne soit pas possible de connecter tous les points s'il existe de nombreuses valeurs pour les mêmes valeurs de l'axe X, sauf si vous activez l'ordre des lignes.
Sans ordre de ligne

Avec l'ordre des lignes (j'ai d'abord trié les données par poids)

Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.
C'est ce que j'obtiens en utilisant du code - .


Mais quand j'ajoute manuellement une ligne

Ensuite, je change la connexion en courbe



J'atteins ce que je désire. Une courbe touchant tous mes points.
Alors, comment puis-je y parvenir via mon code ?
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.La version plus lisse (avec des points) est la valeur par défaut pour certaines sélections de colonnes, ce qui pourrait être la raison pour laquelle JMP l'utilise pour votre graphique. À quoi ressemble le script créé par JMP si vous l'obtenez à partir de la version plus lisse ?
Pour moi, cela semble fonctionner correctement.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(7),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 89, 60, 50, 40, 20, 10]))
);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Cela ne fonctionne pas pour moi.
Je l'ai essayé à nouveau.
Je n'ai pas créé de lisseur manuellement. J'ai créé une ligne, j'y ai ajouté des points et je l'ai changée en courbe. J'ai copié le script (le même que celui de la description). Mais le même script crée un lisseur et non une ligne.
Q- Lorsque vous exécutez votre script, que voyez-vous sur le panneau de contrôle à gauche Points et Line ? ou Points et Smoother ? Pour ma part, je vois des points et un lisseur lors de l'exécution de mon script Line.
Pouvez-vous essayer d'ajouter plus de points à votre code un peu sous forme de zigzag, puis exécuter votre script ?
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Quelle version de JMP utilisez-vous ? J'utilise la version 18.1.2. Avez-vous essayé d'exécuter mon script ? Pouvez-vous me fournir votre tableau de données ?
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 80, 90, 60, 70, 40, 30, 35, 20, 10]))
);
gb = dt << Graph Builder(
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Ma version JMP est

J'ai renommé les colonnes et également supprimé les autres colonnes à l'exception de mes X et Y. Vérifiez si cela fonctionne pour vous.
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Ça semble bien ?

Names Default To Here(1);
dt = Open("$DOWNLOADS/data_jmp.jmp");
gb = dt << Graph Builder(
Variables(X(:X), Y(:Y)),
Elements(Line(X, Y, Legend(5), Connection("Curve")), Points(X, Y, Legend(6)))
);Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Oui, la même chose fonctionne pour moi individuellement, pourquoi cela ne fonctionne-t-il pas en boucle ?:( . Qu'est-ce qui ne va pas ? Pouvez-vous vérifier ce script une fois -
createDashboard = Function({dtMaxF, dtMaxR, normMeanColsF, normMeanColsR, direction},
New Window(direction || " Dashboard",
Tab Box(
"Maximum Values",
V List Box(
For(i = 1, i <= N Items(normalizedColumns), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normalizedColumns[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
),
"Normalized Average Values",
V List Box(
For(i = 1, i <= N Items(normMeanColsF), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsF[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
),
For(i = 1, i <= N Items(normMeanColsR), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsR[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
)
)
)
);
createDashboard(
dtMaxForward, dtMaxReverse, normalizedMeanColumns, normalizedMeanColumns, "Analysis"
);Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.À quoi servent dtMaxF et dtMaxR dans la fonction ? D'où vient normalizedColumns dans la fonction ?
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.ignorez dtMaxF, dtMaxR (je vais supprimer cela du code). Je joins le script complet pour que vous puissiez l'analyser
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Commencez avec quelque chose de très petit. Vous pouvez commencer par écrire un seul graphique si vos créations de table fonctionnent correctement. Ensuite, développez-le avec quelques graphiques différents, éventuellement à partir de différentes tables. Il vous manque des références de table lors du traçage et vos formules peuvent ne pas se comporter comme prévu ( insérer une expression dans une autre à l'aide de Eval Insert, Eval Expr, Parse et Substitute ).
Re : La ligne devient plus lisse lorsqu'elle est créée à partir d'un script JSL.Ok, laisse-moi essayer ça. Euh, jusqu'à présent, toutes les formules fonctionnent, mais laisse-moi vérifier à nouveau