Comment puis-je ajuster automatiquement la largeur du bac dans les distributions en fonction de la plage de données elle-même ?Lorsque j'utilise la plateforme de distribution, par défaut la largeur des bacs est toujours grande et n'aide pas à bien comprendre la distribution. Les données que je dois traiter varient par ordre de grandeur (méga, mili, unité, etc.) donc un bac fixe avec pour tous les histogrammes ne fonctionne pas. De plus, dans le cas réel que je dois traiter, j'ai des centaines de tests, il n'est donc pas non plus possible d'ajuster les tracés un par un. Existe-t-il un moyen de faire en sorte que la largeur du bac pour chaque parcelle individuelle soit déterminée par la plage de données ? Par exemple, je voudrais simplement saisir la plage et la diviser en 100 parties égales ou 50, etc. Ainsi, quelle que soit l'unité, l'apparence serait quelque peu uniforme sur toutes les parcelles sans avoir à les ajuster individuellement. Ci-joint 3 exemples de tracés où je souhaite que la valeur par défaut soit de voir la largeur du bac être définie comme peut-être 1/100 de la plage de données.
Merci!
GraphiqueRe : Comment puis-je ajuster automatiquement la largeur du bac dans les distributions en fonction de la plage de données elle-même ?salut @breino ,
commencer ici:
https://community.jmp.com/t5/JMP-Add-Ins/2D-Histograms/ta-p/377945
faites-nous savoir si cela aide.
Re : Comment puis-je ajuster automatiquement la largeur du bac dans les distributions en fonction de la plage de données elle-même ?Bonjour Ron :
Merci pour la suggestion. Malheureusement, il n'aime pas un grand nombre de tests, j'ai essayé d'ajouter ~ 30 tests à tracer et donne une erreur de "Impossible d'ajouter un élément: la liste contient déjà le nombre maximum d'éléments".
J'espérais qu'il y avait un paramètre général pour ajuster la largeur du bac puisque la plupart des distributions sortent avec des barres larges, ce doit donc être un paramètre global quelque part sur la façon de déterminer leur largeur.
Re : Comment puis-je ajuster automatiquement la largeur du bac dans les distributions en fonction de la plage de données elle-même ?Vous pouvez essayer de le scripter.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(2);
rep_layer = Report(dist);
axisbox = rep_layer[axis box(1)];
For Each({val}, colList,
//some calculation for inc
newInc = Col Max(Column(dt, val)) - Col Min(Column(dt, val));
newInc = newInc/10;
cur_rep = rep_layer[OutlineBox(val)];
axisbox = cur_rep[axis box(1)];
axisbox << Inc(newInc);
);Il y a aussi Bin Span() mais je ne suis pas sûr qu'il puisse être modifié une fois la distribution construite.
Re : Comment puis-je ajuster automatiquement la largeur du bac dans les distributions en fonction de la plage de données elle-même ?salut @breino
que diriez-vous de ceci comme base de développement :
Open( "$SAMPLE_DATA/Big Class.jmp" );
Distribution(
Continuous Distribution( Column( :height ), Set Bin Width( (colmax(:height)-colmin(:height))/50 ) ),
Continuous Distribution( Column( :weight ), Set Bin Width( (colmax(:weight)-colmin(:weight))/100 ) )
);
Re : Comment puis-je ajuster automatiquement la largeur de la corbeille dans les distributions en fonction de la plage de données elle-même ?Très probablement une amélioration de mon code précédent avec le Set Bin Width() de @ron_horne .
Le bouclage peut très probablement être fait de manière plus intelligente :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(1);
For(i = 1, i <= N Items(colList), i++,
newInc = Col Max(Column(dt, colList[i])) - Col Min(Column(dt, colList[i]));
newInc = newInc/10;
dist[i] << Set Bin Width(newInc);
);