범례가 둘 이상인 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 = 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
show 인수가 없습니다.
표시 할 범례를 어떻게 지정합니까?
답변
를 사용 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=FALSE
Geom에 추가 하여 해당 범례를 억제 할 수 있습니다.