IT Share you

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

shareyou 2020. 12. 7. 21:10
반응형

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 removes the text and the background, but it does not remove the space that the row occupied.

This code removes those rows from the layout:

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)

I'm using ggplot2 version 1 and the commands required have changed. Instead of

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

you now use

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

For more detail see http://docs.ggplot2.org/current/theme.html


As near as I can tell, Sandy's answer is correct but I think it's worth mentioning that there seems to be a small difference the width of a plot with no facets and the width of a plot with the facets removed.

It isn't obvious unless you're looking for it but, if you stack plots using the viewport layouts that Wickham recommends in his book, the difference becomes apparent.


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을 사용하고 있습니다.

참고 URL : https://stackoverflow.com/questions/10547487/remove-facet-wrap-labels-completely

반응형