Je travaille actuellement sur un tableau de bord pour un atelier de production en usine. D'un côté, j'aimerais montrer les trous percés dans le fuselage ou l'avion dans un nuage de points 3D. De l'autre côté, j'aimerais montrer les heures de début de chaque travail de forage, qui sont essentiellement un nuage de points avec quelques catégories sur l'axe vertical et un temps continu sur l'axe horizontal. Il y a plusieurs fuselages dans les données, la première étape consiste donc à en sélectionner un. Après la sélection, un filtre de données invisible masque et exclut les autres points. Cela fonctionne généralement bien, mais j'ai rencontré un problème que je n'ai aucune idée de résoudre.
Il existe plusieurs machines qui effectuent le perçage. J'aimerais coder en couleur tous les points (à la fois dans le nuage de points 3D et dans la chronologie) en fonction des programmes de travail chargés sur les machines. Lorsque je fais cela en sélectionnant :Job ID comme variable de couleur*, je remarque que les deux graphiques utilisent des couleurs différentes pour chaque :Job ID. Lorsque je sélectionne par exemple des points rouges dans la chronologie, les points bleus sont sélectionnés dans le nuage de points 3D.
How to make colors match between graphs?Comment faire correspondre les couleurs entre les graphiques ?
Je me demande s'il existe un moyen de synchroniser/faire correspondre les couleurs sur les deux graphiques ? Toutes les idées sont les bienvenues. Je suis complètement coincé.
Aussi, désolé pour le flou, je ne suis pas sûr d'être autorisé à afficher des chiffres réels, je joue simplement en toute sécurité.
Merci!
* : le tracé de la chronologie provenant d'une fenêtre de création de graphiques contient :
timeline = Graph Builder(
Size( 1300, 600 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Start Time Stamp ),
X( :Load Time Stamp, Position( 1 ) ),
Y( :Side ),
Y( :Longitudinal Location, Position( 1 ) ),
Y( :Machine, Position( 1 ) ),
Color( :Job ID )
),
Elements( Points( X( 1 ), X( 2 ), Y( 1 ), Y( 2 ), Y( 3 ) ) ),
),
et le nuage de points 3D a :
scatter = Scatterplot 3D(
Y( :x, :y, :z ),
Coloring( :Job ID ),
Show Controls( 0 ),
Frame3D(
Set Graph Size( 500, 500 ),
Set Grab Handles( 0 ),
Set Rotation( -54, 0, 38 )
),
),J'ai retiré une partie du code supplémentaire que j'utilisais pour supprimer les légendes, définir les limites des axes, etc. des scripts ci-dessus. Ils distraient.
L'idée de txnelson est assez simple et élégante. J'ai ajouté des couleurs de valeur à la colonne "Job ID", puis dans le menu Lignes, j'ai utilisé "Couleur ou Marquer par colonne". Et immédiatement les couleurs sont apparues sur le nuage de points 3D.L'intrigue de la chronologie a demandé un peu plus d'efforts pour faire correspondre les couleurs. J'ai utilisé deux variables dans l'axe horizontal et le générateur de graphiques attribue automatiquement des couleurs à la colonne d'où proviennent les points et remplace la coloration des lignes du tableau. Mais une fois que j'ai inclus le Color( :Job ID ) dans le générateur de graphique, toutes les couleurs se sont parfaitement assorties !
Je peux facilement transformer cela en un script maintenant basé sur ce que j'ai appris de la réponse de vince_faller. Ils étaient tous les deux très utiles.
Merci à vous deux!
Vous pouvez le faire à la volée avec
Names Default to Here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
//this will give you a legend
// the expression just makes it so it's live in both windows
legend = Expr(dt << Color By Column(:age));
//you have to make a custom report to show the proper legend
new window("Example",
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age <= 14)
),
legend
),
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age >= 13)
),
legend
)
);
Cela devrait au moins vous donner une idée.
Si vous définissez la propriété de colonne Value Colors pour :Job ID, le ScatterPlot 3D et le Graph Builder utiliseront ces couleurs.