r에서 facet_wrap을 사용하여 GGPLOT2를 사용하여 여러 축 라벨 표시

StackOverflow https://stackoverflow.com/questions/1532535

  •  20-09-2019
  •  | 
  •  

문제

내가 만든 멋진 facet_wrap 밀도 플롯이 있습니다. ggplot2. 각 패널이 왼쪽을 따라 y 축 라벨과 하단을 따라 X 라벨 만있는 대신 x 및 y 축 라벨을 갖기를 원합니다. 내가 지금 가지고있는 것은 다음과 같습니다.

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

반환 :

alt text
(원천: Cerebralmastication.com)

이것이 간단한 것 같지만 Google Fu는 너무 가난 해 답변을 찾을 수 없었습니다.

도움이 되었습니까?

해결책

scales = "free"옵션을 facet_wrap 호출에 포함시킴으로써이를 수행 할 수 있습니다.

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

enter image description here

다른 팁

짧은 대답 : 당신은 그렇게 할 수 없습니다. 3 개의 그래프로 합리적 일 수 있지만 32 개의 그래프가 큰 격자가 있다면 어떨까요? 그것은 시끄럽고 나쁘게 보일 것입니다. GGPlot의 철학은 최소한의 사용자 정의로 올바른 일을하는 것입니다. 즉, 당연히 다른 패키지만큼 맞춤화 할 수는 없습니다.

긴 대답 : 3 개의 별도 GGPlot 객체를 구성하고 결합하여 가짜를 가짜로 만들 수 있습니다. 그러나 그것은 매우 일반적인 해결책이 아닙니다. 다음은 Hadley의 책의 코드가 Ggplot Objects A, B 및 C를 만들었다 고 가정합니다. 맨 위 줄에 B와 C를 맨 위 줄에 넣습니다.

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))
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top