web-dev-qa-db-fra.com

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

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, bien que.

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

Ensemble show.legend = FALSE dans 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 show_guide a changé de nom pour show.legend dans ggplot2 2.0.0 ( voir les nouvelles de la version ).


Pré-ggplot2 2.0.0:

Avec show_guide = FALSE ainsi...

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 )

enter image description here

118
Simon O'Hanlon

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 ne savais pas que je devais ajouter "show_guide = F" aux arguments de geom_text, plutôt que de remplacer par lui les arguments existants - ce qui est la solution de Simon spectacles. Pour un noob ggplot2 comme moi, ce n'était pas si évident. Un bon exemple aurait utilisé le code de l'OP et aurait simplement ajouté l'argument manquant comme ceci:

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

Comme Nick l'a dit

le code suivant produirait toujours l'erreur:

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

enter image description here

tandis que:

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

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

enter image description here

8
user2673238

Nous pouvons utiliser guide_legend(override.aes = aes(...)) pour masquer le 'a' dans la légende.

Voici un court 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)

2
Kamil Slowikowski