Générateur de graphiques : connectez un sous-ensemble de points avec des segments de ligne et affichez uniquement les marqueurs pour les autres pointsBonjour,
J'essaie d'utiliser Graph Builder pour relier un sous-ensemble de points par des segments de droite et afficher uniquement les marqueurs des autres points. Mon tracé ressemble donc à ceci (les lignes ont été ajoutées manuellement dans une image pour illustration) :

J'ai essayé d'utiliser une colonne distincte pour exploiter la fonction de superposition, et cela permet effectivement de tracer des lignes distinctes pour des groupes de points distincts. Cependant, je n'ai pas pu supprimer les lignes et ne conserver que les marqueurs (ou l'inverse) pour un seul groupe de points.
Dans le tableau JMP, j'ai placé les points à relier par une ligne sous forme de quatre points distincts. Idéalement, le dernier de ces quatre points devrait être relié au premier.
Le fichier JMP (JMP 18, version régulière, pas PRO) est joint.
Toutes suggestions ou commentaires sont grandement appréciés.
Merci!
Vladimir
Exploration et visualisation des donnéesRe : Graph Builder : connecter un sous-ensemble de points avec des segments de ligne et afficher uniquement les marqueurs pour les autres points
J'ai produit ceci de manière interactive
- J'ai ajouté une ligne de superposition supplémentaire à la table de données pour ajouter la ligne de connexion pour terminer là où elle a commencé

- J'ai ensuite fait glisser la colonne Overlay_column vers la zone de dépôt des couleurs
- J'ai ensuite ajouté une ligne au graphique qui affichait 2 lignes

- Je ne voulais pas de ligne noire, j'ai donc simplement défini la couleur de la ligne noire sur blanche

- Les marqueurs des points des données non superposées ont donc un aspect étrange, car l'ancienne ligne noire est affichée au-dessus des points.
- Pour déplacer les points noirs à afficher au-dessus des lignes désormais blanches (invisibles pour l'utilisateur), j'ai fait un clic droit sur le graphique et sélectionné Personnaliser

- J'ai ensuite sélectionné le marqueur 0 et, à l'aide de la flèche vers le bas, j'ai déplacé le marqueur noir vers le bas au-delà de la ligne (0).

- Ce qui a produit le graphique final

Voici le JSL qui va générer le graphique
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Ex ),
Y( :Gxy ),
Overlay( :overlay_column ),
Color( :overlay_column )
),
Elements(
Points( X, Y, Legend( 5 ) ),
Line( X, Y, Legend( 6 ), Row order( 1 ) )
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
5,
Properties(
0,
{Line Color( 0 ), Marker( "FilledCircle" )},
Item ID( "0", 1 )
),
Properties( 1, {Marker( "Circle" )}, Item ID( "1", 1 ) )
), Legend Model(
6,
Properties( 0, {Line Color( 2 )}, Item ID( "0", 1 ) )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Reorder Segs( {1, 2, 5, 6} )} )
)
);
Il existe d'autres solutions. Voici une méthode JSL simple qui utilise « Ajouter un script graphique » pour tracer la ligne.

Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :Ex ), Y( :Gxy ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Gxy", ScaleBox,
{Min( 0.781114518510881 ), Max( 3.84890945699133 ), Inc( 0.5 ),
Minor Ticks( 0 )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "Red" );
Line( {5, 1}, {5.5, 3.5}, {10, 3}, {11, 1.5}, {5, 1} );
)}
)
)
);
Aucune colonne ni ligne superposée n'est requise
Re : Graph Builder : connecter un sous-ensemble de points avec des segments de ligne et afficher uniquement les marqueurs pour les autres pointsSalut @VladimirB ,
Je pourrais obtenir quelque chose du genre que vous souhaitez, mais cette approche est vraiment complexe, car il faut ordonner les lignes pour que les points soient reliés comme vous le souhaitez. À ce stade, il ne suffit pas de sélectionner les points pour obtenir une forme fermée. Mais, comme vos données sont correctement ordonnées dans votre exemple, cela répond à vos attentes.

J'ai créé deux nouvelles colonnes (col 4 et col 5) qui renvoyaient uniquement les valeurs des lignes sélectionnées, puis j'ai ajouté une ligne factice à la fin qui permettait aux col 4 et col 5 de renvoyer la valeur la plus basse sélectionnée, fermant ainsi la forme.


J'ai ajouté la colonne 4 comme deuxième axe Y et la colonne 5 comme deuxième axe x et j'ai fait en sorte que l'élément de point ne respecte que Gxy et Ex et que l'élément de ligne ne respecte que Col4 et Col 5 dans l'ordre des lignes.
Donc, comme je l'ai dit, c'est un peu maladroit, mais cela vous y amène et pourrait vous inspirer, vous ou un autre utilisateur, à faire quelque chose d'encore meilleur !
Steve
Re : Graph Builder : connecter un sous-ensemble de points avec des segments de ligne et afficher uniquement les marqueurs pour les autres pointsSalut @VladimirB ,
Je souhaitais créer un outil interactif pour créer des points connectés, comme vous le demandiez. J'ai donc créé ce script pour relier des points de manière interactive. Vous trouverez ci-joint un script permettant de sélectionner des points et de les connecter par des segments de ligne.
Lorsque vous l'exécutez, il vous demandera quelles colonnes utiliser comme colonnes des axes Y et X

Lorsque vous appuyez sur OK, trois colonnes seront créées, puis une nouvelle fenêtre apparaîtra :

À ce stade, vous pouvez exécuter le script de table

ce qui vous donne ceci

Vous pouvez maintenant sélectionner un point puis cliquer sur « définir la valeur » dans la fenêtre de l'interface utilisateur

vous pouvez ensuite sélectionner un nouveau point et appuyer à nouveau sur le bouton « définir la valeur » pour connecter les deux points

faites ceci jusqu'à ce que tous vos points soient sélectionnés

Une fois que vous avez sélectionné tous les points, cliquez sur le bouton « Terminé » pour relier la ligne au point de départ

Si vous avez manqué un point, vous pouvez le sélectionner et appuyer sur « Définir la valeur », ce qui lui donnera un aspect foiré pendant une seconde.

Vous pouvez utiliser le bouton « Insérer un point médian » pour corriger le problème. Dans ce cas, le point 8 devrait se trouver après le point 5. Lorsque vous cliquez sur le bouton, saisissez 5 et validez.

et Bam ! les points sont réorganisés

Si vous devez recommencer, appuyez sur le bouton « Effacer les valeurs »
J'espère que cela vous aidera ! De plus, je suis sûr que ce n'est pas fiable pour de nombreuses utilisations différentes, donc il y a de fortes chances qu'il y ait un bug, en dehors de la façon dont je viens de présenter le flux de travail.
Salut @hogi ,
Je suis sûr que vous pourriez rendre cela bien plus utile que moi.
Steve
Re : Graph Builder : connecter un sous-ensemble de points avec des segments de ligne et afficher uniquement les marqueurs pour les autres pointsMerci beaucoup, TXNELSON !
Vous avez proposé une solution très intéressante ! Avec un excellent script ! Je vais certainement l'essayer !
J'apprécie beaucoup votre réponse rapide et détaillée avec toutes les directives !
~ Vladimir
Re : Graph Builder : connecter un sous-ensemble de points avec des segments de ligne et afficher uniquement les marqueurs pour les autres pointsMerci beaucoup, SHAMPTON82 !
Vous avez proposé une solution très intéressante ! Je vais l'essayer.
J'apprécie beaucoup votre réponse rapide et détaillée avec toutes les directives !
Et vous avez également créé une solution interactive !
C'est très instructif pour moi !
Merci!
~ Vladimir