Frage

Ich habe eine schöne facet_wrap Dichteplot bekam, dass ich mit ggplot2 geschaffen haben. Ich würde für jedes Panel wie X zu haben, und Y-Achse Etiketten statt nur auf der linken Seite und der x-Etiketten entlang der Unterseite der Y-Achse Etiketten aufweist. Was ich habe Recht sieht nun wie folgt aus:

library(ggplot2)
myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups)
p

Welche Renditen:


(Quelle: cerebralmastication.com )

Es scheint, wie dies sollte einfach sein, aber mein Google Fu war zu arm, eine Antwort zu finden.

War es hilfreich?

Lösung

Sie können dies tun, indem Sie die Waage einschließlich = "frei" Option in Ihrem facet_wrap Aufruf:

myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups, scales="free")
p

Andere Tipps

Kurze Antwort: Sie können das nicht tun. Es könne sinnvoll mit 3 grafischen Darstellungen machen, aber was, wenn Sie ein großes Gitter von 32 Graphen haben? Das würde aussehen laut und schlecht. GGplot Philosophie geht es um das Richtige zu tun mit einem Minimum an Anpassung, das heißt, natürlich, dass man die Dinge nicht so viel wie andere Pakete anpassen kann.

Lange Antwort: Man könnte es eine Fälschung durch drei separate ggplot Objekte konstruieren und sie zu kombinieren. Aber es ist nicht eine sehr allgemeine Lösung. Hier ist ein Code aus Hadley Buch, das Sie übernimmt erstellt haben ggplot Objekte a, b, und c. Es setzt eine in der oberen Reihe, mit b und c in der unteren Reihe.

grid.newpage()
pushViewport(viewport(layout=grid.layout(2,2)))
vplayout<-function(x,y)
    viewport(layout.pos.row=x,layout.pos.col=y)
print(a,vp=vplayout(1,1:2))
print(b,vp=vplayout(2,1))
print(c,vp=vplayout(2,2))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top