创建ggplot堆栈栏和趋势线

时间:2012-07-13 19:09:28

标签: r ggplot2

我正在使用名为df的数据框:

    Date    variable   Value
    1/1/2012 teamA     10
    1/1/2012 teamA     10


    1/1/2012 teamB    10

    1/1/2012 teamC     15

    1/2/2012 teamA    25

    1/2/2012 teamB     30

    1/2/2012 teamC     20

第二个数据框叫total

     Date      Total
    1/1/2012   50
    1/2/2012   70

我正在尝试创建一个ggplot堆栈var并在同一个图形上绘制一个趋势线,如下所示:

ggplot(df,aes(x=Date, y=Value, fill=(variable))) +
       geom_bar(stat="identity") + 
       theme_bw() + 
       opts(title = "Team Performance") + 
       xlab("Date") + ylab("Score") + 
       geom_smooth(data=Total,
                   aes(Date,Total,group=1), 
                   method="lm", size=2, color="darkblue")

我收到此错误:

Error in eval(expr, envir, enclos) : object 'variable' not found

当我自己这样做时:

ggplot(df,aes(x=Date, y=Value, fill=(variable))) +  
geom_bar(stat="identity") + theme_bw() 

它有效

variable对象肯定存在,任何想法,我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

映射在ggplot()中的美学级联到每一层。

这意味着fill = variable中需要geom_smooth,而我猜测variable中没有任何名为Total的内容。将fill = variable移至geom_bar或使用geom_smoothfill = NULL中取消映射。