미학과 geom_text를 사용할 때 범례에서 'a'제거


124

이 코드로 생성 된 범례에서 문자 'a'를 제거하려면 어떻게해야합니까? 를 제거하면 geom_text'a'문자가 범례에 표시되지 않습니다. geom_text그래도 유지하고 싶습니다 .

ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, shape = Species, colour = Species)) + 
   geom_point() + 
   geom_text(aes(label = Species))

답변:


142

설정 show.legend = FALSE에서 geom_text:

ggplot(data = iris,
       aes(x = Sepal.Length, y = Sepal.Width, colour = Species, shape = Species, label = Species)) + 
    geom_point() +
    geom_text(show.legend = FALSE)

인수의 show_guide이름이 show.legendin으로 변경 되었습니다 ggplot2 2.0.0( 릴리스 뉴스 참조 ).


사전ggplot2 2.0.0 :

show_guide = FALSE같은 ...

ggplot( data=iris, aes(x=Sepal.Length, y=Sepal.Width , colour = Species , shape = Species, label = Species ) , size=20 ) + 
geom_point()+
geom_text( show_guide  = F )

여기에 이미지 설명 입력


3
설정 show.legendFALSE있는 ggplot23.2.1은 모두 전설을 제거합니다!
NelsonGon

14

비슷한 문제 가있었습니다 . Simon의 솔루션은 나를 위해 일했지만 약간의 비틀기가 필요했습니다. 나는 geom_text의 인수 "show_guide = F" 를 추가 해야한다는 것을 깨닫지 못했습니다 . 기존 인수로 대체하는 것이 아니라 Simon의 솔루션이 보여주는 것입니다. 나 같은 ggplot2 멍청한 사람에게는 이것은 그렇게 분명하지 않았습니다. 적절한 예는 OP의 코드를 사용하고 다음과 같이 누락 된 인수를 추가했을 것입니다.

..
geom_text(aes(label=Species), show_guide = F) +
..

9

Nick이 말한 것처럼

다음 코드는 여전히 오류를 생성합니다.

geom_text(aes(x=1,y=2,label="",show_guide=F))

여기에 이미지 설명 입력

이므로:

geom_text(aes(x=1,y=2,label=""),show_guide=F)

aes 인수 외부에서는 범례에 대한 a를 제거합니다.

여기에 이미지 설명 입력


'a'를 'r'과 같은 다른 것으로 사용자 정의하는 방법이 있습니까?
asalimih

8

guide_legend(override.aes = aes(...))범례에서 'a'를 숨기는 데 사용할 수 있습니다 .

아래는 guide_legend () 사용 방법에 대한 간단한 예입니다.

library(ggrepel)
#> Loading required package: ggplot2

d <- mtcars[c(1:8),]

p <- ggplot(d, aes(wt, mpg)) +
  geom_point() +
  theme_classic(base_size = 18) +
  geom_label_repel(
    aes(label = rownames(d), fill = factor(cyl)),
    size = 5, color = "white"
  )

# Let's see what the default legend looks like.
p

# Now let's override some of the aesthetics:
p + guides(
  fill = guide_legend(
    title = "Legend Title",
    override.aes = aes(label = "")
  )
)

2019-04-29에 reprex 패키지 (v0.2.1)에 의해 생성됨


다른 미학은 원하는 경우 그대로 유지하면서 전설에서 'a'문자를 구체적으로 제거 할 수 있기 때문에 허용되는 것보다 더 나은 해결책이라고 생각합니다.
Markel

1

show.legend = FALSE의 인수에 geom_label_repel()를 사용 하여 범례에서 "a"를 제거 할 수도 있습니다 . 그래서 대신

ggplot(d, aes(wt, mpg)) +
  geom_point() +
  theme_classic(base_size = 18) +
  geom_label_repel(
    aes(label = rownames(d), fill = factor(cyl)),
    size = 5, color = "white"
  )+ guides(
  fill = guide_legend(
    title = "Legend Title",
    override.aes = aes(label = "")
  )
)

넌 할 수있어,

ggplot(d, aes(wt, mpg)) +
  geom_point() +
  theme_classic(base_size = 18) +
  geom_label_repel(
    aes(label = rownames(d), fill = factor(cyl)),
    size = 5, color = "white",
    show.legend = FALSE  )

0

나는 비슷한 문제가 있었는데, 내가 geom_text_repel. 에 라벨을 붙이려 고했던 다른 색깔의 포인트 뒤에 'a'가 나타납니다 . 'a'를 제거하여 뒤에 'a'가없는 지점 만 표시 show.legend=FALSE되도록하려면에서 인수 로 추가해야 했습니다 geom_text_repel.

같은 문제로 고생하는 사람이라면 누구나 이해할 수 있기를 바랍니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.