Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Wenn ich die Verteilungsplattform verwende, sind die Bin-Breiten standardmäßig immer groß und helfen nicht, ein gutes Verständnis der Verteilung zu erlangen. Die Daten, die ich verarbeiten muss, variieren in Größenordnungen (Mega, Mili, Einheit usw.), daher funktioniert eine feste Bin mit für alle Histogramme nicht. Auch im wirklichen Fall, den ich verarbeiten muss, habe ich Hunderte von Tests, so dass es auch nicht möglich ist, die Plots einzeln anzupassen. Gibt es eine Möglichkeit, die Bin-Breite für jeden einzelnen Plot durch den Datenbereich zu bestimmen? Ich möchte zum Beispiel einfach den Bereich greifen und in 100 gleiche Teile oder 50 usw. aufteilen, damit unabhängig von der Einheit das Erscheinungsbild über alle Plots hinweg einigermaßen einheitlich wäre, ohne sie einzeln anpassen zu müssen. Im Anhang sind 3 Beispiele für Diagramme, bei denen ich mir als Standard wünsche, dass die Bin-Breite auf vielleicht 1/100 des Datenbereichs eingestellt wird.
Vielen Dank!
GrafikBetreff: Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Hi @breino ,
Fang hier an:
https://community.jmp.com/t5/JMP-Add-Ins/2D-Histograms/ta-p/377945
lass es uns wissen, wenn es hilft.
Betreff: Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Hallo Ron:
Vielen Dank für den Vorschlag. Leider mag es eine große Anzahl von Tests nicht, ich habe versucht, ~ 30 Tests hinzuzufügen, die gezeichnet werden sollen, und gibt die Fehlermeldung "Element kann nicht hinzugefügt werden: Liste enthält bereits die maximale Anzahl von Elementen."
Ich hatte gehofft, dass es eine allgemeine Einstellung zum Anpassen der Bin-Breite gibt, da die meisten Verteilungen mit breiten Balken ausgegeben werden, sodass dies irgendwo eine globale Einstellung sein muss, um zu bestimmen, wie breit sie sind.
Betreff: Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Sie könnten versuchen, es zu skripten.
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);
);Es gibt auch Bin Span(), aber ich bin mir nicht sicher, ob es geändert werden kann, nachdem die Distribution erstellt wurde.
Betreff: Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Hallo @breino
wie wäre es damit als Basis für die Entwicklung:
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 ) )
);
Betreff: Wie kann ich die Bin-Breite in Verteilungen basierend auf dem Datenbereich selbst automatisch anpassen?Höchstwahrscheinlich eine Verbesserung zu meinem bisherigen Code mit dem Set Bin Width() aus @ron_horne .
Looping kann höchstwahrscheinlich auf cleverere Weise erstellt werden:
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);
);