청중의 경우 레이블이 관련이 없기 때문에 일종의 스파크 라인 효과 를 만들기 위해 패싯의 레이블을 완전히 제거하고 싶습니다 .
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
합니다.
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이 책에서 권장하는 뷰포트 레이아웃을 사용하여 플롯을 쌓으면 그 차이가 분명해집니다.