Programing

ggplot2에서 추가 범례 제거

lottogame 2020. 10. 14. 07:18
반응형

ggplot2에서 추가 범례 제거


를 사용하여 결합 된 선과 점 플롯을 수행하려는 간단한 데이터 프레임이 ggplot2있습니다. 내 데이터가 다음과 같다고 가정합니다.

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

그리고 나는 줄거리를 만들려고 노력하고 있습니다.

g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g

결과는 한 가지 예외를 제외하면 괜찮아 보입니다. alphageom_point레이어에 대한 추가 범례가 있습니다.

<code> geom_point </ code> 투명도에 대한 추가 범례

범례에 그룹 색상을 표시하지만 알파 설정을 표시하지 않는 방법은 무엇입니까?


통화 내에서 미학을 설정 하거나 매핑 할 수 있습니다 ggplot.

  • 내부 aes(...)정의 된 미학 은 데이터에서 매핑 되고 범례가 생성됩니다.
  • 미학은 외부에서 정의하여 단일 값 으로 설정할 수도 있습니다 aes().

이 경우 설정 alpha = 0.8 하고 매핑 하려는 것으로 나타납니다 colour = group.

이것을하기 위해,

장소 alpha = 0.8밖에서에게 aes()정의를.

g <- ggplot(df, aes(x = x, y = y, group = group))
g <- g + geom_line(aes(colour = group))
g <- g + geom_point(aes(colour = group), alpha = 0.8)
g

여기에 이미지 설명 입력

어떤을 위해 매핑 된 변수는 사용하여 전설의 모양을 supress 수있는 guide = 'none'적절한에 scale_...전화를 겁니다. 예.

g2 <- ggplot(df, aes(x = x, y = y, group = group)) + 
        geom_line(aes(colour = group)) +
        geom_point(aes(colour = group, alpha = 0.8))
g2 + scale_alpha(guide = 'none')

동일한 플롯을 반환합니다.

@Joran의 의견을 수정하십시오. 내 대답을보다 포괄적으로 만들었습니다.


show.legend = F원하지 않는 부분 뒤에 코드를 추가하면 됩니다.

g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8), show.legend = F)

이전 버전의 ggplot2 (0.9.2 이전 버전, 2012 년 후반에 출시됨)의 경우이 답변이 작동합니다.

나는 이것을 a로 시도했지만 colour_scale작동하지 않았습니다. 나타납니다 colour_scale_hue항목이 기본 매개 변수와 함수처럼 작동합니다 TRUE. 나는 추가 scale_colour_hue(legend=FALSE)했고 작동했습니다.

이것이 ggplot의 모든 색상 스케일 항목에 해당하는지 확실하지 않습니다.

참고 URL : https://stackoverflow.com/questions/11714951/remove-extra-legends-in-ggplot2

반응형