[r] ggplot에서 범례 제목을 변경하는 방법

나는 다음과 같은 줄거리를 가지고있다. 이 명령으로 작성되었습니다.

library(ggplot2)

df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)), 
                 rating = c(rnorm(200), rnorm(200, mean=.8)))

ggplot(df, aes(x=rating, fill=cond)) + 
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")

다음으로 할 일은 범례 제목cond 에서 NEW LEGEND TITLE 로 수정하는 것 입니다.

그래서 내가 한 것은 위의 코드 끝에 다음 줄을 추가하는 것입니다.

+labs(colour="NEW LEGEND TITLE")

그러나 작동하지 않습니다. 올바른 방법은 무엇입니까?

여기에 이미지 설명을 입력하십시오



답변

이것은 작동해야합니다 :

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEW RATING TITLE") + 
           ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))

(또는 대안으로)

p + scale_fill_discrete(name = "New Legend Title")


답변

나는 이것을 많이 파지 않았지만 ggplot ()에서 fill = cond 를 사용했기 때문에 ,

 + labs(color='NEW LEGEND TITLE') 

작동하지 않았을 수 있습니다. 그러나 채우기로 색상바꾸면 작동합니다!

+ labs(fill='NEW LEGEND TITLE') 

이것은 ggplot2_2.1.0에서 나를 위해 일했습니다.


답변

밀도가 두 개이므로를 사용하여 자신 만의 색상을 설정하고 싶을 것입니다 scale_fill_manual.

그렇다면 다음을 수행 할 수 있습니다.

df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))

legend_title <- "OMG My Title"

ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +   
    scale_fill_manual(legend_title,values=c("orange","red"))

여기에 이미지 설명을 입력하십시오


답변

위 코드 중 어느 것도 나를 위해 일하지 않았습니다.

여기 내가 찾은 것이 있고 효과가있었습니다.

labs(color = "sale year")

\n끝에 추가하여 제목과 디스플레이 사이에 공백을 둘 수도 있습니다 .

labs(color = 'sale year\n")


답변

코드 ggplot(data, fill= cond)에서 히스토그램을 만드는 데 사용 했으므로 레이블 섹션에서 “fill”을 사용하여 범례 제목을 추가해야합니다 +labs(fill="Title name"). 코드가 ggplot (data, colour = cond) 인 다른 유형의 플롯을 사용하는 경우을 사용할 수 있습니다 +labs(colour= "Title Name"). 요약하면 랩 인수는 aes 인수와 일치해야합니다.

+ guides(fill=guide_legend("my awesome title"))geom_bar 플롯에서 범례 제목을 변경하는 데 사용 했지만 geom_point에서는 작동하지 않는 것 같습니다.


답변

간단한 그래프에 사용할 수있는 또 다른 매우 간단한 답변이 있습니다.

guide_legend () 호출을 그래프에 추가하십시오.

ggplot(...) + ... + guide_legend(title="my awesome title")

아주 좋은 ggplot 문서에 표시된 것처럼 .

그래도 문제가 해결되지 않으면 가이드 호출을 통해 가이드 매개 변수를보다 정확하게 설정할 수 있습니다 .

ggplot(...) + ... + guides(fill=guide_legend("my awesome title"))

호출 할 guides때 이러한 매개 변수를 지정하여 모양 / 색상 / 크기를 변경할 수도 있습니다 .


답변

목록에 추가하기 위해 (여기에서 다른 옵션은 작동하지 않음) ggplot에 update_labels 함수를 사용할 수도 있습니다.

p <- ggplot(df, aes(x=rating, fill=cond)) +
           geom_density(alpha=.3) +
           xlab("NEW RATING TITLE") +
           ylab("NEW DENSITY TITLE")
update_labels(p, list(colour="MY NEW LEGEND TITLE")

또한 별도의 줄을 사용하여 x 축 및 y 축 레이블을 변경할 수 있습니다.

update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")