我是初学者和自学成才的R用户所以请耐心等待。
我的数据看起来像这样:
city variable value
a var1 0.398847367
a var2 0.975311071
a var3 0.957249734
b var1 0.313723366
b var2 0.130885548
b var3 0.771616001
c var1 0.057720637
c var2 0.398434369
c var3 0.088653681
d var1 0.024273226
d var2 0.744307456
d var3 0.315222384
我正在尝试使用ggplot创建堆栈条形图。颜色的顺序非常重要。 我的代码是
cols <- c(var1="tomato2", var2="steelblue3", var2="darkolivegreen3")
ggplot(LUL4, aes(x=city, y=value, group=factor(variable)) +
geom_bar(stat="identity", colour="black") +
scale_fill_manual(values = cols) +
这样做我没有得到我在对象cols
中选择的颜色。我试图在cols
命令之后立即避免scale_fill_manual(values =values = c("darkolivegreen3", "tomato2", "steelblue3"))
并在代码的第一行粘贴geom_bar
。它仍然不起作用,我没有想法。任何帮助非常感谢。
答案 0 :(得分:1)
ggplot2
docs是一个很好的资源 - 使用它们:)
如果您为fill
指定geom_bar
美学,则scale_fill_manual
将按您的意愿运作。
d <- read.table(text='city variable value
a var1 0.398847367
a var2 0.975311071
a var3 0.957249734
b var1 0.313723366
b var2 0.130885548
b var3 0.771616001
c var1 0.057720637
c var2 0.398434369
c var3 0.088653681
d var1 0.024273226
d var2 0.744307456
d var3 0.315222384', header=T)
cols <- c(var1="tomato2", var2="steelblue3", var2="darkolivegreen3")
[编辑 - OP指出我误读了Q]
ggplot(d, aes(x=city, y=value, group=factor(variable))) +
geom_bar(stat="identity", aes(fill=variable)) +
scale_fill_manual(values = cols)
答案 1 :(得分:1)
感谢jbaums,虽然我希望它们堆叠起来。无论如何,在aes(fill= VARIABLENAME)
选项中添加geom_bar
是让scale_fill_manual
工作的关键。谢谢!
我想到的解决方案是下面的条形图也是堆叠的。希望能帮助到你!
d <- read.table(text='city variable value
a var1 0.398847367
a var2 0.975311071
a var3 0.957249734
b var1 0.313723366
b var2 0.130885548
b var3 0.771616001
c var1 0.057720637
c var2 0.398434369
c var3 0.088653681
d var1 0.024273226
d var2 0.744307456
d var3 0.315222384', header=T)
cols <- c('violetred3', 'palegreen4', 'orangered')
ggplot(d, aes(x=city, y=value, fill=factor(variable))) + geom_bar(stat="identity", colour="black")
ggplot(d, aes(x=city, y=value, group=factor(variable))) + geom_bar(stat="identity", colour="black", aes(fill=variable)) + scale_fill_manual(values=cols)