[r] facet_wrap 레이블을 완전히 제거하십시오.

청중의 경우 레이블이 관련이 없기 때문에 일종의 스파크 라인 효과 를 만들기 위해 패싯의 레이블을 완전히 제거하고 싶습니다 .

library(MASS)
library(ggplot2)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') +
     facet_wrap(~ID) +
     theme(strip.text.x = element_text(size=0))

그렇다면 “스파크 라인”을위한 더 많은 공간을 허용하기 위해 (지금은 비어있는) strip.background를 완전히 제거 할 수 있습니까?

아니면 이와 같은 많은 이진 값 시계열에 대해이 ” 스파크 라인 “효과 를 얻는 더 좋은 방법 이 있습니까?



답변

ggplot v2.1.0 이상의 경우을 사용 element_blank()하여 원하지 않는 요소를 제거하십시오.

library(MASS) # To get the data
library(ggplot2)

qplot(
  week,
  y,
  data = bacteria,
  group = ID,
  geom = c('point', 'line'),
  xlab = '',
  ylab = ''
) +
facet_wrap(~ ID) +
theme(
  strip.background = element_blank(),
  strip.text.x = element_blank()
)

이 경우 제거하려는 요소는라고 strip합니다.

패널 제목이없는 ggplot2 그림


ggplot grob 레이아웃을 사용하는 대안

이전 버전 ggplot(v2.1.0 이전)에서는 스트립 텍스트가 gtable 레이아웃의 행을 차지합니다.

element_blank 텍스트와 배경을 제거하지만 행이 차지한 공간은 제거하지 않습니다.

이 코드는 레이아웃에서 해당 행을 제거합니다.

library(ggplot2)
library(grid)

p <- qplot(
  week,
  y,
  data = bacteria,
  group = ID,
  geom = c('point', 'line'),
  xlab = '',
  ylab = ''
) +
facet_wrap(~ ID)

# Get the ggplot grob
gt <- ggplotGrob(p)

# Locate the tops of the plot panels
panels <- grep("panel", gt$layout$name)
top <- unique(gt$layout$t[panels])

# Remove the rows immediately above the plot panel
gt = gt[-(top-1), ]

# Draw it
grid.newpage()
grid.draw(gt)


답변

ggplot2 버전 1을 사용하고 있으며 필요한 명령이 변경되었습니다. 대신에

ggplot() ... +
opts(strip.background = theme_blank(), strip.text.x = theme_blank())

당신은 지금 사용

ggplot() ... +
theme(strip.background = element_blank(), strip.text = element_blank())

자세한 내용은 http://docs.ggplot2.org/current/theme.html을 참조 하십시오.


답변

Sandy의 업데이트 된 답변은 좋아 보이지만 ggplot 업데이트로 인해 쓸모 없게 될 수 있습니까? 다음 코드 (Sandy의 원래 답변의 단순화 된 버전)에서 알 수있는 것은 추가 공간없이 Sean의 원래 그래프를 재현합니다.

library(ggplot2)
library(grid)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') +
 facet_wrap(~ID) +
 theme(strip.text.x = element_blank())

ggplot 2.0.0을 사용하고 있습니다.


답변

내가 알 수 있듯이 Sandy의 대답은 정확하지만 패싯이없는 플롯의 너비와 패싯이 제거 된 플롯의 너비에 작은 차이가있는 것 같다는 점을 언급 할 가치가 있다고 생각합니다.

찾고 있지 않으면 명확하지 않지만 Wickham이 책에서 권장하는 뷰포트 레이아웃을 사용하여 플롯을 쌓으면 그 차이가 분명해집니다.


답변