한 레이어의 범례를 유지하고 (부드럽게) 다른 레이어의 범례를 제거하려고합니다 (포인트). 내가 가진 전설을 차단 시도 guides(colour = FALSE)
하고 geom_point(aes(color = vs), show.legend = FALSE)
.
편집 :이 질문과 답변이 많이 사용되므로 재현 가능한 예는 다음과 같습니다.
library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
답변
에서 R 요리 책 혈압이 ggplot입니다 :
특정 미학에 대한 범례 제거 (채우기) :
bp + guides(fill=FALSE)
스케일을 지정할 때도 수행 할 수 있습니다.
bp + scale_fill_discrete(guide=FALSE)
이렇게하면 모든 범례가 제거됩니다.
bp + theme(legend.position="none")
답변
이에 대한 또 다른 해결책이있을 수 있습니다.
코드는 다음과 같습니다.
geom_point(aes(..., show.legend = FALSE))
당신은 지정할 수 있습니다 show.legend
매개 변수 후aes
전화 :
geom_point(aes(...), show.legend = FALSE)
해당 범례가 사라져야합니다
답변
질문과 user3490026 의 답변이 인기 검색어이므로, OP의 질문을 명시 적으로 다루는 솔루션과 함께 지금까지 제안 된 제안에 대한 간단한 예와 재현 가능한 예를 만들었습니다.
ggplot2
혼동 할 수있는 작업 중 하나는 동일한 변수와 연관된 특정 범례를 자동으로 혼합한다는 것입니다. 예를 들어, factor(gear)
에 한 번, 두 번 표시 linetype
하고 한번 fill
결합 된 전설의 결과. 반대로, gear
로 취급되지 않기 때문에 자체 범례 항목이 있습니다 factor(gear)
. 지금까지 제공된 솔루션은 일반적으로 잘 작동합니다. 그러나 때때로 가이드를 재정의해야 할 수도 있습니다. 하단의 마지막 예를 참조하십시오.
# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
모든 범례를 제거하십시오 : @ user3490026
p + theme(legend.position = "none")
모든 전설을 제거하십시오 : @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
전설 끄기 : @Tjebo
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()
선 종류가 보이도록 채우기를 제거합니다
p + guides(fill = FALSE)
scale_fill_ 함수를 통해 위와 동일합니다 :
p + scale_fill_discrete(guide = FALSE)
이제 OP 요청에 대한 가능한 답변
“한 레이어의 범례를 유지하고 (부드럽게) 다른 레이어의 범례를 제거하려면 (포인트)”
임시 포스트-혹은 일부를 끄십시오
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)
답변
차트 fill
와 color
미학을 모두 사용하는 경우 다음을 사용 하여 범례를 제거 할 수 있습니다.
+ guides(fill=FALSE, color=FALSE)
답변
