Estetik ve geom_text kullanırken lejanddan 'a'yı kaldırın


124

Bu kodla oluşturulan göstergeden 'a' harfini nasıl kaldırabilirim? Öğesini kaldırırsam, geom_textaçıklamada 'a' harfi görünmeyecektir. geom_textYine de tutmak istiyorum .

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

Yanıtlar:


142

Set show.legend = FALSEiçinde 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)

Argümanın show_guideadı show.legendin olarak değiştirildi ggplot2 2.0.0( yayın haberlerine bakın ).


Ön- ggplot2 2.0.0:

Onun show_guide = FALSEgibi ...

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 )

görüntü açıklamasını buraya girin


3
Ayar show.legendiçin FALSEde ggplot23.2.1 tamamen efsane kaldıracaktır!
NelsonGon

14

Benzer bir problemim vardı . Simon'un çözümü benim için işe yaradı, ancak hafif bir değişiklik gerekiyordu. Ben gerektiğini fark etmedi eklemek neyi Simon'un çözüm gösterileri ise - Mevcut argümanları geom_text argümanlarına "show_guide = F" yerine onunla değiştirin. Benim gibi bir ggplot2 noob için bu o kadar açık değildi. Uygun bir örnek, OP'nin kodunu kullanır ve eksik argümanı şöyle eklerdi:

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

9

Nick'in dediği gibi

aşağıdaki kod yine de hatayı oluşturacaktır:

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

görüntü açıklamasını buraya girin

buna karşılık:

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

aes argümanının dışında, efsanenin üzerinde a'yı ortadan kaldırır

görüntü açıklamasını buraya girin


"A" yı "r" gibi başka bir şeye özelleştirmenin bir yolu var mı?
asalimih

8

guide_legend(override.aes = aes(...))Efsanedeki 'a'yı gizlemek için kullanabiliriz .

Aşağıda, guide_legend () işlevini nasıl kullanabileceğinize dair kısa bir örnek verilmiştir.

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 paketi (v0.2.1) tarafından 2019-04-29 tarihinde oluşturuldu


Bence bu, efsaneden özel olarak 'a' harfini çıkarmaya izin verdiği için, diğer estetiklere dokunulmadan kalabilir.
Markel

1

Açıklamadaki "a" harfini kaldırmak için show.legend = FALSEargümanlarında da kullanabilirsiniz geom_label_repel(). Yani, yerine

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 = "")
  )
)

yapabilirsin,

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

Etiketlemeye çalıştığım farklı renkli noktaların arkasında görünen bir 'a' ile benzer bir sorun yaşadım geom_text_repel. "A" yı kaldırmak için, arkasındaki "a" olmadan noktayı gösterecek şekilde, içine show.legend=FALSEargüman olarak eklemeliydim geom_text_repel.

Umarım bu aynı sorunla uğraşan herkes için mantıklıdır!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.