使用r中的ggplot2更改geom_bar中的条形图颜色

xvw2m8pv  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(291)

我有以下为了条形图的数据框架。

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

最后我只看到灰色的条:Grey bars for bar plot
我想更改条的颜色。我已经尝试了与http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/不同的scale_fill_manual,但仍然有灰色条。
谢谢你的帮助。

uyhoqukh

uyhoqukh1#

如果希望所有的条形图都具有相同的颜色(fill),可以很容易地将其添加到geom_bar中。

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

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)

如果要手动更改颜色,请使用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"))

yxyvkwin

yxyvkwin2#

你也可以直接把x变量赋值给fill美学元素,比如factor

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

当您知道这些因素的名称时(本例:11.5,22.5,43.5),您可以简单地使用scale_fill_manualvalues来更改它的颜色,如下所示:

library(ggplot2)
ggplot(data=df, aes(x=c1+c2/2, y=c3, fill = factor(c1+c2/2))) +
  geom_bar(stat="identity", width=c2) +
  scale_fill_manual("Legend", values = c("11.5" = "red", "22.5" = "green", "43.5" = "blue"))

创建于2023年1月26日,使用reprex v2.0.2

相关问题