code

ggplot에서 일부 범례 끄기

starcafe 2023. 6. 17. 09:31
반응형

ggplot에서 일부 범례 끄기

범례가 둘 이상 있는 gg 그림이 있다고 가정합니다.

mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()
)

다음과 같은 모든 범례의 표시를 해제할 수 있습니다.

(p1 <- p0 + theme(legend.position = "none"))

패싱show_guide = FALSE로.geom_point( 질문에 따라) 도형 범례를 해제합니다.

(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point(show_guide = FALSE)
)

하지만 만약 제가 색 범례를 끄고 싶다면 어떻게 해야 할까요?우리가 그들의 삶의 질질 끌 수 있는show_guide어떤 범례에 자신의 행동을 적용할지.그리고 없습니다.show_guide척도 또는 미학에 대한 주장.

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  scale_colour_discrete(show_guide = FALSE) +
  geom_point()
)
# Error in discrete_scale

(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
  aes(colour = length, show_guide = FALSE) +
  geom_point()
)
#draws both legends

이 질문은 (ggplot2 v0.9.2 이후) 범례를 제어하는 현대적인 방법이 다음과 같이 있음을 시사합니다.guides기능.

저는 다음과 같은 것을 할 수 있기를 원합니다.

p0 + guides(
  colour = guide_legend(show = FALSE) 
)

그렇지만guide_legend쇼 인수가 없습니다.

표시할 범례를 지정하려면 어떻게 해야 합니까?

사용할 수 있습니다.guide = "none"scale_..._...()전설을 억누르려고요

예를 들어 다음을 사용해야 합니다.scale_colour_continuous()왜냐면length연속형 변수입니다(불연속형이 아님).

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
   scale_colour_continuous(guide = "none") +
   geom_point()
)

또는 함수를 사용합니다.guides()설정해야 합니다."none"예를 들어 범례로 표시하지 않으려는 요소/요소에 대해 예를 들어,fill,shape,colour.

p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()    
p0+guides(colour = "none")

갱신하다

제공된 두 솔루션 모두 새로운 환경에서 작동합니다.ggplot2버전 3.3.5 그러나movies데이터 집합이 이 라이브러리에 더 이상 없습니다.대신 새로운 패키지를 사용해야 합니다.ggplot2movies해결책을 확인할 수 있습니다.

library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")

간단히 추가할 수 있습니다.show.legend=FALSE해당 범례를 억제하기 위해 검을 사용합니다.

언급URL : https://stackoverflow.com/questions/14604435/turning-off-some-legends-in-a-ggplot

반응형