ggplot2에서 범례의 제목을 어떻게 변경합니까? [닫은]


58

2 x 4 x 3 셀 데이터 세트의 데이터를 요약하기 위해 ggplot2에서 만들고있는 플롯이 있습니다. 를 사용하여 2 레벨 변수에 대한 패널을 만들고 facet_grid(. ~ Age)를 사용하여 x 및 y 축을 설정할 수있었습니다 aes(x=4leveledVariable, y=DV). 나는 aes(group=3leveledvariable, lty=3leveledvariable)지금까지 줄거리를 만들었습니다. 이것은 2 레벨 변수로 표시되는 시각화를 제공합니다. X 축은 4 레벨 변수를 나타내며 3 레벨 변수의 패널 내에 다른 선이 그려져 있습니다. 그러나 3 단계 변수의 키는 3 단계 변수 이름으로 제목이 지정되어 있으며 문자 공간이있는 제목이되고 싶습니다. 범례의 제목을 어떻게 바꿀 수 있습니까?

내가 시도하지 않은 것들이 작동하지 않는 것 같습니다 ( abpggplot2 객체는 어디에 있습니까).

 abp <- abp + opts(legend.title="Town Name")
 abp <- abp + scale_fill_continuous("Town Name")
 abp <- abp + opts(group="Town Name")
 abp <- abp + opts(legend.title="Town Name")

데이터 예 :

ex.data <- data.frame(DV=rnorm(2*4*3), V2=rep(1:2,each=4*3), V4=rep(1:4,each=3), V3=1:3)

2
@drknexus-데이터를 공유 할 수 있다면 도움이 될 것입니다. 또는 데이터와 동일한 모양을 가진 R 내의 유사한 데이터 세트를 가리 킵니다.
체이스

1
여기에있는 모든 사람들은 매우 지식이있는 것처럼 보이지만 ggplot 관련 질문에 대해 Google 그룹이 매우 유용하다는 것을 알고 있습니다. groups.google.com/group/ggplot2
Dason

Hadley의 페이지에서 잘 알려지고 훌륭한 문서 외에도 Git Hub에 대한 잘 알려지지 않은 참조 가 이러한 종류의 문제를 해결하는 데 실제로 도움이됩니다.
hans0l0

또는 theme_get()콘솔에서 동일한 참조를 제공합니다.
Brandon Bertelsen 2016 년

1
SO 마이그레이션을 요청하는 여러 플래그에 대한 응답으로 실제로 불가능합니다. 왜 SO.meta에 참조 meta.stackexchange.com/q/8004/150510 , meta.stackexchange.com/q/151890/150510을 .
chl

답변:


25

다른 옵션은

p + labs(aesthetic='custom text')     

예를 들어 Chase의 예는 다음과 같습니다.

library(ggplot2)

ex.data <- data.frame(DV=rnorm(2*4*3),V2=rep(1:2,each=4*3),V4=rep(1:4,each=3),V3=1:3)
p <- qplot(V4, DV, data=ex.data, geom="line", group=V3, linetype=factor(V3)) + facet_grid(. ~ V2)
p + labs(linetype='custom title')

그리고 그림을 산출하십시오 : 여기에 이미지 설명을 입력하십시오


요즘에는 labs ()를 사용하여 스케일 / 축을 기준으로 스케일 / 축으로 레이블을 지정하는 것보다 레이블을 수정하는 것을 선호합니다.
russellpierce

38

해당 범례의 배율을 수정하여 범례의 제목을 변경할 수 있습니다. 다음은 CO2 데이터 세트를 사용하는 예입니다

library(ggplot2)

p <- qplot(conc, uptake, data = CO2, colour = Type) + scale_colour_discrete(name = "Fancy Title")
p <- p + facet_grid(. ~ Treatment)
p 

편집하다:

위의 예제 데이터를 사용하여 작동하는 솔루션은 다음과 같습니다. 나는 이것이 @drknexus가 만들려고하는 음모를 모방한다고 생각합니다. 참고로, V3를 범례에 매핑하기위한 요소로 취급해야하는 이유를 누구나 설명 할 수 있다면 감사하겠습니다.

p <- qplot(V4, DV, data = ex.data, geom = "line", group = V3, lty = factor(V3)) 
p <- p + scale_linetype_discrete(name = "Fancy Title") + facet_grid(. ~ V2)
p 

대체 텍스트


내가 누락 된 것은 ggplot (data = ex.daata, aes (x = V4, y = DV, group = V3, lty = V3)에서 "group"또는 "lty"사양에 연결되는 scale_color_discrete와 같은 함수라고 생각합니다. ))
russellpierce

1
아 나는 그것을 발견했다 : scale_linetype_discrete (name = "bob")
russellpierce

@Chase : scale_linetype_discrete 비트로 편집하면 답을 받아들입니다.
russellpierce

1
@ drknexus-그 문제는 작업 예제에 있으며 적절한 명령이 scale_colour_discrete()있으며 작업중 인 코드는 분명히 다릅니다. 그 코드가 무엇인지 모르겠습니다.
Chase

3
@Chase Re : "V3를 요인으로 취급해야하는 이유" scale_linetype_discrete는 불연속 값 (요인 또는 문자)을 갖는 변수를 예상합니다 . plyr::is.discreteGithub의 src 코드, j.mp/ejaRRT를 확인하십시오 . 좋은 반응 (+1).
chl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.