2015-07-27 1 views
1

J'essaie de créer un graphique à barres empilées qui utilise les valeurs de 'MaskID' pour créer des étiquettes de texte. Chaque valeur unique dans 'MaskID' aura sa propre couleur et je veux que les noms des valeurs soient avec leurs couleurs correspondantes sur le graphique à barres.Comment modifier les étiquettes de texte ggplot2 qui sont basées sur des valeurs de légende

p <- ggplot(df, aes(x, y)) 
p <- p + xlab("xlabel") 
p <- p + ylab("ylabel") 
p <- p + ggtitle("ylabel vs xlabel") 
p <- p + geom_bar(stat="identity", aes(fill=MaskID)) 
p <- p + geom_text(aes(label=MaskID)) 

Je ne veux pas aussi les noms pour montrer si la valeur de la barre est 0. Les noms « MaskID » sont tous regroupés où les valeurs de barre sont 0. Est-ce que quelqu'un sait comment personnaliser cela? Je suis encore assez nouveau pour ggplot2 (et R).

+0

essayer 'p + geom_text (aes (label = ifelse (y == 0, '', MaskID)))' 'supposant y' est la "valeur de bar" _ (Non testé) _ –

+0

Cela a aidé partiellement. Merci! Il s'est définitivement débarrassé du problème de la valeur 0, mais au lieu de placer les noms 'MaskID' sur le graphique à barres, il place des valeurs numériques à la place. – anonymous

Répondre

1

Essayez cette

p + geom_text(aes(label= ifelse(y != 0, as.character(MaskID), '')))