Mein Problem ist, dass, wenn ich Histogramme mit ggplot2 einer bestimmten bin Breite größer als die Auflösung der Daten erstellen, Bins manchmal ungerade Anzahl von Inkrementen von den zugrunde liegenden Daten enthalten. Dies führt zu großen Peaks im Histogramm, die einen falschen Eindruck davon liefern, wie hoch die Daten sind. Gibt es eine eingebaute Möglichkeit, dies zu verhindern? Vielleicht Zwischenschritte zwischen den Behältern zuweisen?R ggplot2 Histogramm bin Zuweisung
require(ggplot2)
require(ggplot2movies)
m <- ggplot(movies, aes(x = rating))
#Original resolution
plot(m + geom_histogram(binwidth = 0.1) + scale_y_sqrt())
#Downsampled
plot(m + geom_histogram(binwidth = 0.25) + scale_y_sqrt())
Ich verstehe nicht, was Sie verhindern möchten. Ich meine, Sie geben eine bestimmte Behälterbreite an, und das Diagramm zeigt die Zähler für diese Behälter an. Sie sollten nur eine für Ihre Daten geeignete Behälterbreite wählen. Und ehrlich gesagt, das ist kein gelöstes Problem. In der Basisfunktion 'hist()' sind verschiedene Algorithmen implementiert. Es ist Peaky, weil Histogramme für kontinuierliche Zufallsvariablen gedacht sind und Sie grundsätzlich diskrete Werte haben. Es zeigt, dass Ihre Daten eine Struktur haben, die meiner Meinung nach wahrheitsgemäßer ist. – MrFlick
Für die Algorithmen, die die Basis 'hist' verwendet, siehe'? Nclass' - Sie könnten eine der drei Optionen verwenden, um die Gesamtzahl der Klassen zu bestimmen, aber sie basieren alle auf dem Datenbereich, nicht auf der Auflösung. Beachten Sie auch, dass die Datenauflösung möglicherweise nicht konstant über den Bereich ist. – Gregor
@MrFlick Es ist für eine glänzende App, in der die Anzahl der Behälter einstellbar ist, um den Vergleich mit anderen Datensätzen zu erleichtern. Offensichtlich sind bestimmte Vielfache der Auflösung am sinnvollsten als eine Bin-Breite, und vielleicht könnte ich die Werte auf diese Teilmenge beschränken, aber ich würde wirklich gerne etwas Sinnvolles für Zwischenwerte zeichnen. – Matt