如何根据全年计算添加到geom_bar?

时间:2014-07-25 17:32:16

标签: r ggplot2

如果您有几年的年度数据,但是对于最近一年只有部分年份的数据,是否有一种编程方式来延长最近一年的标准,可能使用ggplot2和geom_bar来指示全年是否会推断出部分年度数据?

这是一个很小的例子。假设2014年的数字为半年。有没有办法在“栏顶”添加相同的金额,即推断半年数据,颜色或填充不同?

yrs <- data.frame(Id = c(1, 2, 3), Year = c(2012, 2013, 2014), Amount = c(5e6, 6e6, 3e6))

ggplot(yrs, aes(x = Year, y = Amount)) + geom_bar(stat = "identity") 

1 个答案:

答案 0 :(得分:0)

为什么不添加一个类型变量来区分实际收入和预计收入,这样的话?

yrs <- data.frame(Id = c(1, 2, 3,4), Year = c(2012, 2013, 2014,2014), 
Amount = c(5, 6, 3, 4))


yrs$type <- c(rep("Actual",3),"Projected")

然后,您可以使用填充集绘制条形图,如下所示:

ggplot(yrs, aes(x = Year, y = Amount,fill=type )) + geom_bar(stat = "identity")

给你这张图:

enter image description here

就扩展数据而言,有许多方法可以在R中进行预测。也许最简单的方法是使用线性模型:lm

如果您使用没有最近一年的数据集,并运行lm(Amount ~ Year, data = years),您将获得如下输出:

 Call:
 lm(formula = Amount ~ Year, data = yrs)

 Coefficients:
 (Intercept)         Year
       -2007            1

您可以使用年度系数来“推断”最新年份的值。因此,在这种情况下,我们2014年的推断值为7.

yrs$Amount[2] + linear_model$coeff[2]
 Year
    7