programing

facet_wrap 레이블을 완전히 제거합니다.

skycolor 2023. 7. 11. 21:56
반응형

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 figure without panel titles


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 version 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 를 참조하십시오.

샌디의 업데이트된 답변은 좋아 보이지만, 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

반응형