Supprimer «a» de la légende lors de l'utilisation de l'esthétique et de geom_text


124

Comment puis-je supprimer la lettre «a» de la légende générée par ce code? Si je supprime le geom_text, la lettre «a» n'apparaîtra pas dans la légende. Je veux garder geom_text, cependant.

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

Réponses:


142

Installé show.legend = FALSEdans 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)

L'argument a show_guidechangé de nom en show.legendin ggplot2 2.0.0( voir les nouvelles de la version ).


Pré-ggplot2 2.0.0 :

Avec show_guide = FALSEcomme ça ...

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 )

entrez la description de l'image ici


3
Réglage show.legendà FALSEen ggplot23.2.1 enlèvera la légende tout à fait!
NelsonGon

14

J'ai eu un problème similaire . La solution de Simon a fonctionné pour moi, mais une légère torsion était nécessaire. Je n'avais pas réalisé que je devais ajouter "show_guide = F" aux arguments de geom_text, plutôt que de remplacer par lui les arguments existants - ce que montre la solution de Simon. Pour un noob ggplot2 comme moi, ce n'était pas si évident. Un bon exemple aurait utilisé le code de l'OP et simplement ajouté l'argument manquant comme ceci:

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

9

Comme Nick l'a dit

le code suivant produirait toujours l'erreur:

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

entrez la description de l'image ici

tandis que:

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

en dehors de l'argument aes élimine le a sur la légende

entrez la description de l'image ici


Existe-t-il un moyen de personnaliser le «a» en quelque chose d'autre comme «r»?
asalimih le

8

On peut utiliser guide_legend(override.aes = aes(...)) pour cacher le «a» dans la légende.

Voici un petit exemple de la façon dont vous pourriez utiliser 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 = "")
  )
)

Créé le 2019-04-29 par le package reprex (v0.2.1)


Je pense que c'est une meilleure solution que celle acceptée, car elle permet de supprimer spécifiquement la lettre «a» de la légende, tandis que d'autres esthétiques peuvent, si on le souhaite, rester intactes.
Markel

1

Vous pouvez également utiliser show.legend = FALSEdans les arguments de geom_label_repel()pour supprimer le "a" dans la légende. Donc, au lieu de

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

tu peux faire,

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

J'ai eu un problème similaire, avec un «a» apparaissant derrière différents points de couleur avec lesquels j'essayais d'étiqueter geom_text_repel. Pour supprimer le «a», afin qu'il montre simplement le point sans le «a» derrière lui, j'ai dû ajouter show.legend=FALSEcomme argument dans geom_text_repel.

J'espère que cela a du sens pour tous ceux qui pourraient travailler avec le même problème!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.