2016-08-05 1 views
9

J'ai les éléments suivants afin d'empêcher l'affichage de la trame de données.Modifier la couleur de la barre de mesure dans geom_bar avec ggplot2 dans r

c1 <- c(10, 20, 40) 
c2 <- c(3, 5, 7) 
c3 <- c(1, 1, 1) 
df <- data.frame(c1, c2, c3) 
ggplot(data=df, aes(x=c1+c2/2, y=c3)) + 
    geom_bar(stat="identity", width=c2) + 
    scale_fill_manual(values=c("#FF6666")) 

Je finis par avoir seulement barres grises: Grey bars for bar plot

Je voudrais changer la couleur de la barre. J'ai déjà essayé différents scale_fill_manual de http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/ mais j'ai toujours des barres grises.

Nous vous remercions de votre aide.

+0

Si vous voulez seulement changer les couleurs générales des barres, sans différence entre les barres, écrire directement dans 'geom_bar()': 'geom_bar (stat = "identity", width = c2, color = "# FF6666") ' – bVa

+0

Donc cette fois je n'ai que le contour de couleur =" # FF6666 ", le remplissage reste gris. Maintenant si je mets: 'ggplot (données = df, aes (x = c1 + c2/2, y = c3, remplir = c3)) + geom_bar (stat =" identité ", largeur = c2)' Je puis avoir une couleur bleu-ish rempli, mais encore une fois, je ne peux pas choisir manuellement. – tuttifolies

+0

'geom_bar (stat =" identité ", width = c2, fill =" # FF6666 ")' pour le même remplissage pour toutes les barres. Utilisez 'scale_fill_manual (values ​​= c (" # FF6666 "))' si vous voulez définir la couleur par une variable (catégorie). – bVa

Répondre

17

Si vous voulez que toutes les barres obtiennent la même couleur (remplissage), vous pouvez facilement l'ajouter à l'intérieur geom_bar.

ggplot(data=df, aes(x=c1+c2/2, y=c3)) + 
geom_bar(stat="identity", width=c2, fill = "#FF6666") 

enter image description here

Utilisez scale_fill_manual() si vous voulez manuellement le changement de couleurs en fonction d'une variable catégorique.

c4 = c("A", "B", "C") 
df = cbind(df, c4) 
ggplot(data=df, aes(x=c1+c2/2, y=c3, fill = c4)) + 
geom_bar(stat="identity", width=c2) 

enter image description here

ggplot(data=df, aes(x=c1+c2/2, y=c3, fill = c4)) + 
geom_bar(stat="identity", width=c2) + 
scale_fill_manual("legend", values = c("A" = "black", "B" = "orange", "C" = "blue")) 

enter image description here