Wie erstellen geom_boxplot mit großer Menge von kontinuierlichen x-Variablen
Habe ich einen Daten-frame enthält die x-Achse numerische Ablagen und kontinuierliche y-Achse Daten, die über mehrere Kategorien. Zunächst erstellte ich ein boxplot, indem Sie die x-Achse bins "Faktoren", und dabei einen boxplot der geschmolzenen Daten. Reproduzierbare Daten:
x <- seq(1,10,by=1)
y1 <- rnorm(10, mean=3)
y2 <- rnorm(10, mean=10)
y3<- rnorm(10, mean=1)
y4<- rnorm(10, mean=8)
y5<- rnorm(10, mean=12)
df <- data.frame(x,y1,y2,y3,y4,y5)
df.m <- melt(df, id="x")
Mein code zum erstellen der x-Achse, die Daten als Faktor:
df.m$x <- wie.Faktor(df).m$x)
Meine ggplot:
ggplot(df.m, aes(x=x, y=value))+
geom_boxplot(notch=FALSE, outlier.shape=NA, fill="red", alpha=0.1)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
Den resultierenden plot:
:
Das problem ist, dass ich nicht verwenden können x-Achse numerische Abstand, da die x-Achse ist kategorisiert als ein Faktor, das ist der gleiche Abstand. Ich möchte in der Lage sein, etwas zu verwenden, wie scale_x_continuous zu manipulieren, die Achse bricht und der Abstand, sagen wir, ein Intervall von 2, anstatt eines boxplots alle 1, aber wenn ich versuche zu Plotten Sie die Daten mit der x-Achse "als.numeric", bekomme ich nur ein boxplot aller Daten:
Anregungen für einen Weg, um diese kontinuierlich-auf der Suche boxplot-Kurve (das erste Bild), während noch in der Lage, um die numerischen Eigenschaften der x-Achse? Danke!
- Nicht der Google drive link in der Frage funktioniert für Sie? Sollte der Datenrahmen für dieses Beispiel. Vielen Dank für das up und hilft mir wieder! Es ist schon ein problem-geritten-Tag in der R-Welt...
- Gotcha, sorry. Arbeiten die jetzt Bearbeiten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Weg, die Verwendung der original-Daten, die Sie auf dem Laufenden über Google - die in der Tat viel hilfreicher, IMO.
So, wie @BenBolker sagte, bevor er seine Antwort gelöscht(??), lassen Sie die x-variable (
CH
) wie numerisch, und legen Siegroup=CH
im Aufrufaes(...)
.Mit Ihren echten Daten ein weiteres problem gibt es aber. Ihre
CH
ist mehr oder weniger logarithmisch verteilt, so dass es etwa so viele Punkte < 1, wie es zwischen 1 - 10, etc.ggplot
will die Boxen alle die gleiche Größe, so dass mit einer linearen x-Achse die Breite ist kleiner als die Linienbreite, und Sie sehen nicht die Boxen überhaupt. Das ändern der x-Achse eine logarithmische Skala Updates, mehr oder weniger.Nicht machen
x
ein Faktor. Sie müssen ästhetisch Karte eingroup
das ist ein Faktor, der bestimmt, welches Feld den Wert zugeordnet ist, zum Glück, nach dem Schmelzen, das ist, was Sievariable
Spalte:Als
x
noch numerisch ist, können Sie es geben, was auch immer Werte, die Sie möchten, innerhalb einer bestimmtenvariable
Ebene und der boxplot zeigen sich an dieser Stelle. Oder Sie transformieren könntex
Achse, etc.group=x
wie @BenBolker gesagt (schade, dass er seine Antwort gelöscht).