programing

미학 및 gem_text를 사용할 때 범례에서 'a' 제거

batch 2023. 6. 5. 23:45
반응형

미학 및 gem_text를 사용할 때 범례에서 'a' 제거

이 코드로 생성된 범례에서 문자 '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))

세트show.legend = FALSEgeom_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.legendggplot2 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  = FALSE)

여기에 이미지 설명 입력

우리는 사용할 수 있습니다.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 = "")
  )
)

reprex 패키지(v0.2.1)에 의해 2019-04-29에 생성되었습니다.

저도 비슷한 문제가 있었습니다.사이먼의 해결책은 저에게 효과가 있었지만 약간의 반전이 필요했습니다.저는 사이먼의 솔루션이 보여주는 기존의 인수를 그것으로 대체하는 것이 아니라 gem_text의 인수에 "show_guide = F"를 추가해야 한다는 것을 깨닫지 못했습니다.나와 같은 ggplot2 noob에게 이것은 그렇게 명백하지 않았습니다.적절한 예는 OP의 코드를 사용하고 다음과 같이 누락된 인수를 추가했을 것입니다.

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

닉이 말한 것처럼

다음 코드에서도 오류가 발생합니다.

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'가 나타나는 유사한 문제가 있었습니다.geom_text_repel뒤에 'a'가 없이 포인트만 표시되도록 'a'를 제거하려면 다음과 같이 추가해야 했습니다.show.legend=FALSE의 논거로서geom_text_repel.

같은 문제로 고생하는 사람들에게 그것이 말이 되기를 바랍니다!

사용할 수도 있습니다.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  )

최고의 답을 만드는 것.만약 당신이 단지 그것을 원했다면.geom_text()눈에 띄지만 그것을 가지고 있습니다.geom_point()범례의 목적을 위해 알파를 0으로 설정하여 보이지 않게 만들 수 있지만 가이드에서 1로 재정의하여 강제로 표시할 수 있습니다.

ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, 
                        shape = Species, colour = Species)) + 
  geom_point(alpha = 0) + 
  geom_text(aes(label = Species)) +
  guides(color = guide_legend(override.aes = aes(label = "", alpha = 1))) 

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/18337653/remove-a-from-legend-when-using-aesthetics-and-geom-text

반응형