Adapter la « taille » de Graph Builder aux axesSupposons que j'ai un ensemble de données de défauts trouvés sur une surface de produits manufacturés qui ressemble à ceci :
| SN | X(cm) | Oui(cm) | Diamètre (cm) |
| 0001 | 2.3 | 1.15 | 0,04 |
| 0001 | 2.7 | 0,44 | 0,12 |
| 0001 | 1,5 | 2.6 | 0,35 |
| 0002 | 5.4 | 1.9 | 0,17 |
| 0002 | 3.1 | 4.1 | 0,59 |
Dans Graph Builder, étant donné que je filtre les données locales du SN et que je trace X(cm)->X, Y(cm)->Y et Diamètre(cm)->Taille, existe-t-il un moyen de faire en sorte que les tailles de points résultantes soient dessinées à l'échelle sur le tracé ?
Exploration et visualisation des donnéesRe : Adapter la « taille » de Graph Builder aux axessolution facile, mais pas parfaitement dimensionnée

Résoudre le problème en quelques clics :
Dans le générateur de graphiques, je mets X et Y sur les cases des axes X et Y, puis j'ajoute SN au rôle de couleur et Diameter au rôle de taille.
Voici à quoi ressemblerait le script :
Graph Builder(
Size( 409, 391 ),
Variables(
X( :"X(cm)"n ),
Y( :"Y(cm)"n ),
Color( :SN ),
Size( :"Diameter(cm)"n )
),
Elements( Points( X, Y, Legend( 9 ) ) )
);
Re : Adapter la « taille » de Graph Builder aux axesIl semble que vous ayez bien reproduit le processus dans la question. J'espérais que quelqu'un pourrait connaître une option de clic-maj ou autre chose qui aiderait à la mise à l'échelle.
Re : Adapter la « taille » de Graph Builder aux axesJe pense que vous devrez peut-être faire cela avec un script graphique. Vous trouverez ci-dessous une solution très rapide et astucieuse, elle peut vous donner une idée de ce que vous pourriez éventuellement faire
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("SN", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2])),
New Column("X(cm)", Numeric, "Continuous", Set Values([2.2999999999999998, 2.7000000000000002, 1.5, 5.4000000000000004, 3.1000000000000001])),
New Column("Y(cm)", Numeric, "Continuous", Set Values([1.1499999999999999, 0.44, 2.6000000000000001, 1.8999999999999999, 4.0999999999999996])),
New Column("Diameter(cm)",
Numeric,
"Continuous",
Set Values([0.040000000000000001, 0.12, 0.34999999999999998, 0.17000000000000001, 0.58999999999999997])
)
);
gb = dt << Graph Builder(
Size(518, 454),
Show Control Panel(0),
Lock Scales(1),
Variables(X(:"X(cm)"n), Y(:"Y(cm)"n), Size(:"Diameter(cm)"n)),
Elements(Points(X, Y, Legend(5))),
Local Data Filter(Add Filter(columns(:SN), Modeling Type(:SN, Nominal)))
);
frame = Report(gb)[FrameBox(1)];
Eval(EvalExpr(
frame << Add Graphics Script(
cur_gb = Expr(Report(gb));
fb = cur_gb[FrameBox(1)];
ms = fb << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
For(i = 1, i <= N Items(xs), i++,
dt = cur_gb << Get Data Table;
m_rows = dt << Get Rows Where(:"X(cm)"n == xs[i] & :"Y(cm)"n);
diam = dt[m_rows, "Diameter(cm)"][1];
Circle({xs[i], ys[i]}, diam/2);
);
);
));

Lisez également comment se comporte le rayon du cercle https://www.jmp.com/support/help/en/18.0/#page/jmp/graphics-functions.shtml?os=win&source=application#ww2626013
Re : Adapter la « taille » de Graph Builder aux axesMerci, @jthi – vous avez manifestement une maîtrise impressionnante du jsl !
Cela ressemble à une fonctionnalité que JMP devrait avoir, et il semble qu'il serait facile de l'intégrer dans les paramètres de taille des marqueurs (au moins du point de vue de l'interface utilisateur). Je l'ajouterai à la liste de souhaits.
Re : Adapter la « taille » de Graph Builder aux axesArticle de la liste de souhaits publié ici :
Générateur de graphiques : activez le dimensionnement des points en fonction des axes avec la zone de dépôt Taille - Communauté d'utilisateurs JMP
@jthi -- ok pour copier/coller votre exemple d'image ci-dessus dans l'élément de la liste de souhaits ?
Re : Adapter la « taille » de Graph Builder aux axesBien sûr. Vous pouvez le modifier un peu pour utiliser l'argument "FILL" dans Circle afin qu'il ressemble à ceci (ce serait peut-être une bonne idée de masquer la légende lorsque vous faites cela, car les cercles contiennent les informations de taille et non les marqueurs sous-jacents)

Re : Adapter la « taille » de Graph Builder aux axesJe ne suis pas tout à fait dans son intégralité cette discussion, mais j'ai pensé que quelques notes pourraient être pertinentes.
- Il existe une commande « Taille en isométrique » dans Clic droit > Graphique > Taille/Échelle > Taille en isométrique. Elle dimensionne le graphique de sorte que X et Y aient les mêmes valeurs par pixel. Cependant, elle ne persiste pas.
- La variable de taille est représentée par une surface circulaire et non par un diamètre.
- Il y a quelques versions, nous avons ajouté la fonctionnalité Marker Draw Expo aux marqueurs et au générateur de graphiques (appelée Expressions de forme sous le menu Points triangle rouge).

Graph Builder(
Size( 496, 501 ),
Show Control Panel( 0 ),
Lock Scales(1),
Variables( X( :"X(cm)"n ), Y( :"Y(cm)"n ) ),
Elements(
Points( X, Y, Legend( 5 ),
Set Shape Expression(
Expr(
Function( {this seg, this row, x, y, pixel size, row state},
{r = :"Diameter(cm)"n / 2},
Oval( x - r, y + r, x + r, y - r, 1 )
)
)
)
)
),
Local Data Filter( Add Filter( columns( :SN ), Modeling Type( :SN, Nominal ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Size To Isometric} )
)
);