programing

ggplot2에서 추가 범례 제거

testmans 2023. 6. 19. 21:17
반응형

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

결과는 한 가지 예외를 제외하고는 괜찮아 보입니다.그것은 그것을 보여주는 추가적인 전설을 가지고 있습니다.alpha나로서는geom_point층.

Extra Legend for <code>geom_point</code> transparency

내 알파 설정을 표시하는 범례가 아닌 그룹 색상을 표시하는 범례를 유지하려면 어떻게 해야 합니까?

미학은 다음과 같이 설정하거나 매핑할 수 있습니다.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

enter image description here

매핑된 변수에 대해 다음을 사용하여 범례의 모양을 숨길 수 있습니다.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')

동일한 플롯이 반환됩니다.

에디트 @조란의 논평은 현장에서, 나는 내 대답을 더 포괄적으로 만들었습니다.

추가하기만 하면 됩니다.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)

또 다른 간단한 옵션은 이 기능을 사용하는 것입니다.guides범례에서 특정 심미성(채움, 알파, 색상) 또는 다중을 제거할 수 있습니다.다음은 알파 범례만 제거하고 알파와 색상을 모두 제거하는 재현 가능한 예입니다.

df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20), 
                 group=c(rep("a",10),rep("b",10)))
library(ggplot2)
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))
# Remove legend alpha
g + guides(alpha = "none")

# Remove legend alpha and color
g + guides(alpha = "none", color = "none")

reprex v2.0.2를 사용하여 2022-08-21에 생성됨

ggplot2의 이전 버전(0.9.2 이전 버전, 2012년 말 출시)의 경우 다음과 같은 답변이 가능해야 합니다.

나는 이것을 시도했습니다.colour_scale그리고 그것은 효과가 되지 않았습니다.다음과 같은 것으로 보입니다.colour_scale_hue항목은 기본 매개 변수가 있는 함수처럼 작동합니다.TRUE추가했습니다.scale_colour_hue(legend=FALSE)그리고 그것은 성공하였다.

ggplot의 모든 색상 척도 항목이 해당되는지 확실하지 않습니다.

언급URL : https://stackoverflow.com/questions/11714951/remove-extra-legends-in-ggplot2

반응형