R力棒颜色

时间:2014-06-18 13:09:04

标签: r colors plot ggplot2

我是初学者和自学成才的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。它仍然不起作用,我没有想法。任何帮助非常感谢。

2 个答案:

答案 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)

corrected plot

答案 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)