2016-08-05 41 views
9

Ich habe die folgenden, um den Datenrahmen zu plotten.Ändern Sie die Farbe der Balkenanzeige in geom_bar mit ggplot2 in 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")) 

ich nur graue Balken am Ende mit: Grey bars for bar plot

Ich mag die Farbe des Balkens ändern. Ich habe schon andere scale_fill_manual aus http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/ versucht, aber immer noch graue Balken haben.

Vielen Dank für Ihre Hilfe.

+0

Wenn Sie nur die allgemeinen Farben Bars ändern möchten, ohne Unterschiede zwischen den Stäben, schreiben Sie es direkt in 'geom_bar()': 'geom_bar (stat = "identity", width = c2, color = "# FF6666") ' – bVa

+0

So habe ich diesmal nur die Kontur von color =" # FF6666 ", die Füllung bleibt grau. Wenn ich nun setze: 'ggplot (data = df, aes (x = c1 + c2/2, y = c3, fill = c3)) + geom_bar (stat =" identität ", width = c2)' ich dann habe eine blau-ish Farbe gefüllt, aber ich kann nicht manuell wählen. – tuttifolies

+0

'geom_bar (stat =" Identität ", Breite = c2, fill =" # FF6666 ")' für gleiche Füllung für alle Bars. Verwenden Sie 'scale_fill_manual (values ​​= c (" # FF6666 "))', wenn Sie die Farbe nach einer Variablen (Kategorie) festlegen möchten. – bVa

Antwort

17

Wenn Sie möchten, dass alle Balken die gleiche Farbe (Füllung) erhalten, können Sie sie einfach innerhalb von geom_bar hinzufügen.

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

enter image description here

Verwenden scale_fill_manual() wenn Sie manuell die Änderung der Farben einer kategorialen Variablen abhängig zu wollen.

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