[r] ggplot에서 일부 범례 끄기

범례가 둘 이상인 ggplot이 있다고 가정합니다.

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

다음과 같이 모든 범례의 표시를 끌 수 있습니다.

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

전달 show_guide = FALSEgeom_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_legendshow 인수가 없습니다.

표시 할 범례를 어떻게 지정합니까?



답변

를 사용 guide=FALSE하여 scale_..._...()범례를 억제 할 수 있습니다 .

예를 들어 연속 변수 (불 연속적이지 scale_colour_continuous()않기 때문에 length) 를 사용해야합니다 .

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

또는 기능 guides()을 사용하여 FALSE범례로 표시하고 싶지 않은 해당 요소 / 미학에 대해 설정해야 합니다 (예 : fill, shape) colour.

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

최신 정보

제공된 솔루션은 모두 새 ggplot2버전 2.0.0 에서 작동 하지만 movies이 라이브러리에는 더 이상 데이터 세트가 없습니다. 대신 ggplot2movies솔루션을 확인 하려면 새 패키지를 사용해야 합니다.

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


답변

show.legend=FALSEGeom에 추가 하여 해당 범례를 억제 할 수 있습니다.


답변