web-dev-qa-db-ja.com

rのggplot2でgeom_barの棒グラフの色を変更

データフレームを棒グラフで表示するには、次のものがあります。

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

灰色のバーのみが表示されます: バープロットのグレーバー

バーの色を変更したいです。 http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/ とは別のscale_fill_manualを試しましたが、まだ灰色のバーがあります。

ご協力ありがとうございました。

28
tuttifolies

すべてのバーを同じ色(fill)にしたい場合は、geom_bar内に簡単に追加できます。

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

enter image description here

変数に応じて色を変更するには、aes内にfill = the_name_of_your_varを追加します。

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

色の変更を手動で行いたい場合は、scale_fill_manual()を使用します。

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

56
bVa