Etienne Low-Décarie
그는 물었다 8년 전
79

어떻게 그렇게 할 수 있는 일반 레이블을 facets 추가하기에서는 ggplot2?

내가 알고 있는 경우가 의 숫자 값을 패 시팅. I wish 해석할 수 있는 충분한 정보를 제공할 수 있는 값을 축으로만 패 시팅 이러한 보충 직무명 비슷하다 "라고 말했다. 훨씬 더 오래 사용할 수 있는 옵션을 라벨러 반복하십시오 불필요한 텍스트 및 변수 "라고 말했다.

제안 사항을?

기본값입니다:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
qplot(data=test, x=x, y=y, facets=facet.b~facet.a)

enter 이미지 여기에 설명을!

내가 사랑하는 것이다.

enter 이미지 여기에 설명을!

내가 할 수 있는 최고의 제프 로트:

qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both)

enter 이미지 여기에 설명을!

@Hendy 표시된 유사한: https://stackoverflow.com/questions/9096671/add-a-secondary-y-axis-to-ggplot2-plots-make-it-perfect

Hendy
그는 8년 전 댓글을 달았습니다
1

Holy cow. 난 그냥 , 보았으매 엔드입니다 http://support. 통해 이 구글. 이제 몇 분 전에 볼 수 있어 물었다. [이 질문] (https://stackoverflow.com/questions/9096671/add-a-secondary-y-axis-to-ggplot2-plots-make-it-perfect) 이 묻는 것 같다고 할 수 있는 것은 그의 의견에 따라 직무명 불구하고 그렇지 않으면 같은 것입니다. 멋진 모형을 설명하는 데 쓰인다. 이것이 정확히 내가 내 문제 - it& 설명해야 할 경우, d, t # 39 그러지마요 didn& # 39 내 숫자 면처리 범주입니다. 다른 어떤 말을 할 수 있는 간편한 com/go/4e6b330a_kr 패 시팅 그래프 레이블에만 설명할 수 있다.

Hendy
그는 8년 전 댓글을 달았습니다
3

내가 많이 있는 윈스턴 창 (# 39, 그의 그러하매 처리하십니까 don& 모르는), 1 개의 기본 제프 로트 개발자, 이메일을 통해. 그는 현재 볼 수 있다며 그러나 이는 doesn& # 39, 옵션으로 추가 it 것 같지는 않다. 그는 내가 대해 추가 제안됩니다 깃허브, [그래서 아니하였으매] (https://github.com/hadley/ggplot2/issues/612)

hadley
그는 8년 전 댓글을 달았습니다
5

예, 제가 생각하는 훌륭한 아이디어입니다 it& # 39 의 확장하지만, 아무 생각이 어떻게 해야 할 일이 너무 어려운 일반.

Hendy
그는 8년 전 댓글을 달았습니다
1

그리고 빈스톤 메일링 리스트에 있는 것처럼 보이는 이 다가와 알려주세요. 분기 만드셨으니까요 함께 일반 구축상의 위한 이 상단형 축제. [Here] 스레드할 참조 (https://groups.google.com/forum/ #!? 프롬그룹스 topic/ggplot2-dev/_gpWsOWrSDk). @hadley: 틀렸다니까 정확하다. 난 아무 생각이 어떻게 해야 할 일이 어려운 일반. 만약 이 처음입니까. 여전히 내 대해 감사를 표했다고 제프 로트 지배하는:)

Andy
그는 8년 전 댓글을 달았습니다
1

내가 하는 일부 수정이 필요한 일부 지점에서 정지점을 서 R/ggplot2 저회가 이미지를 사용하는 편집기.

Christian
그는 8년 전 댓글을 달았습니다
1

내가 어떤 ss+sp 앤디 밝혔다. Svg 형식의 플롯할 저장, 팝 등 결과 붙여넣습니다 벡터입니다 편집기에는 잉크스케이프. 완벽하게 플롯할 편집할 수 있습니다. 네 경우엔 로만스였나 옵션으로?

Arthur Yip
그는 일 년 전 댓글을 달았습니다
2

모든 업데이트 모범 사례 여기서요?

답변 3 개

'있다' 는 ',' 최신 ggplot2 그터블 내부적으로 것은 상당히 쉽게 수정할 수 있는 그림:

library(ggplot2)
test <- data.frame(x=1:20, y=21:40, 
                   facet.a=rep(c(1,2),10), 
                   facet.b=rep(c(1,2), each=20))
p <- qplot(data=test, x=x, y=y, facets=facet.b~facet.a)

# get gtable object
z <- ggplotGrob(p)

library(grid)
library(gtable)
# add label for right strip
z <- gtable_add_cols(z, unit(z$widths[[7]], 'cm'), 7)
z <- gtable_add_grob(z, 
                     list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
                          textGrob("Variable 1", rot = -90, gp = gpar(col = gray(1)))),
                     4, 8, 6, name = paste(runif(2)))

# add label for top strip
z <- gtable_add_rows(z, unit(z$heights[[3]], 'cm'), 2)
z <- gtable_add_grob(z, 
                     list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
                          textGrob("Variable 2", gp = gpar(col = gray(1)))),
                     3, 4, 3, 6, name = paste(runif(2)))

# add margins
z <- gtable_add_cols(z, unit(1/8, "line"), 7)
z <- gtable_add_rows(z, unit(1/8, "line"), 3)

# draw it
grid.newpage()
grid.draw(z)

enter 이미지 여기에 설명을!

물론 스트립 추가 라벨을 자동으로 할 수 있는 함수를 작성할 수 있습니다. 차기 버전의 'ggplot2' 이 기능을 할 수 있습니다. 어쨌든요 잘 모르겠습니다.

rawr
yosukesabai
그는 7년 전 댓글을 달았습니다
0
  • 나는 여전히 깨끗한 태그일 경우, 버전 0.9.3.1 외곽진입 만날 수 있다. # 39, 내가 don& 생각하신거야 같은데, 이 t 지켜보리니 &quot fuctionality&quot. 최신 자료 (http://docs.ggplot2.org/0.9.3.1/) 에서
kohske
그는 7년 전 댓글을 달았습니다
1

버전 () '즉' 는 '그플로그로브 0.9.3.1 같은 ggplot_gtable (ggplot_build ())'. 내 생각에 이것은 여전히 좋은 방법입니다.

papirrin
그는 6년 전 댓글을 달았습니다
0

전설에 따르면 이 외곽진입 덮어씁니다 있을 때 그 중 한명이다. 만약 이를 방지할 방법이 아닌가 싶다.

Remi.b
그는 4년 전 댓글을 달았습니다
1

If I am not, 이 솔루션은 유효함 일부 기능은 더 이상, 지금은 쓰이지 않는 것처럼 보일 정도다.

rawr
그는 4년 전 댓글을 달았습니다
1

지금 시도하시겠습니까 @remi.b

Remi.b
그는 4년 전 댓글을 달았습니다
0

그래, 내가 생각 할 수 있는 기회를 놓친 게 아웃해야 편집하십시오 재발했지. 이 종류의 code&quot 사용한 "; 이미 몇 개의 프레젠테이션입니다. 이는 매우 유용합니다. 감사합니다 작동하잖아 괜찮아!

Calimo
그는 일 년 전 댓글을 달았습니다
1

와 ᄅ씨 3.6.1 ggplot2 3.2.1 이 작동하지 않습니다. 하지만 나는 이 레이블에 don& # 39, 오류 메시지가 없는 결과 플롯할 수 없다.

할 수 있지만 더 나은 방법이 될 수 있습니다.

fac1 = factor(rep(c('a','b'),10))
fac2 = factor(rep(c('a','b'),10))
data = data.frame(x=1:10, y=1:10, fac1=fac1, fac2=fac2)
p = ggplot(data,aes(x,y)) + ggplot2::geom_point() + 
facet_grid(fac1~fac2)
p + theme(plot.margin = unit(c(1.5,1.5,0.2,0.2), "cm"))
grid::grid.text(unit(0.98,"npc"),0.5,label = 'label ar right', rot = 270) # right
grid::grid.text(unit(0.5,"npc"),unit(.98,'npc'),label = 'label at top', rot = 0)   # top

이 외에도 코스키 아웃라인된 방법을 통해 경계선을 확인란 변경하여 추가되든지 추가할 수 있습니다

col=NA

col=gray(0.5), linetype=1

또한, 변경

fill=gray(0.5)
대한

fill=grey(0.8)

gp=gpar(col=gray(1))

gp=gpar(col=gray(0))
새로운 막대에서는 스케쳐내 일치시킵니다 면처리 레이블

ie

z <- gtable_add_grob(z, 
      list(rectGrob(gp = gpar(col = gray(0.5), linetype=1, fill = gray(0.8))),
      textGrob("Variable 1", rot = -90, gp = gpar(col = gray(0)))),
      4, 8, 6, name = paste(runif(2)))