首页 > 代码库 > R语言中同比增长和环比增长

R语言中同比增长和环比增长

      同比增长:与上个周期的同一天或者同一个季度,进行对比。

      环比增长:与同个周期的不同天或者不同季度,进行对比。

      比如,本周星期三与上周星期三进行比较,就是同比,

                  本周星期三与本周星期二进行比较,就是环比。

      下面,以某个论坛的军事科技版本的每日浏览量,来制造一个条形图,并依据上周和本周数据分为两组进行展示,进而分析同比增长与环比增长的区别。原始数据如表(一)所示。

技术分享

      用R语言,将上述数据,转化为条形图。

data <- data.frame(pre=c(113,134,123,145,137,196,187),
				now=c(129,122,134,149,146,215,208));
ylim.max <- 550
col = c("azure4","brown4")
##将主副标题放到barplot函数里,进行设置
##font=3,表示字体为“斜体”
##cex=1.5,表示字体放大1.5倍
barplot(as.matrix(rbind( data$pre,data$now)),
		beside=TRUE,ylim=c(0,ylim.max),col=col,axes=F,
		main=list( "本周pv趋势分析图",cex=1.5,col="red",font=3),
	 	sub=paste("范围:2014.12.1--2014.12.7","\n","网站板块:军事科技"),
	 	ylab="网站日页面浏览量pv"
		)
axis(2)

##画图例
text.legend = c("上周pv","本周pv","pv同比增长","pv环比增长")
col2 <- c("black","blue")
legend("topleft",pch=c(15,15,16,16), legend=text.legend,cex=0.8,col=c(col,col2),bty="n",
	   horiz=TRUE)

##画刻度标记
text.x <- c("周一","周二","周三","周四","周五","周六","周日")
axis(side=1, c(2,5,8,11,14,17,20), labels=text.x,tick=TRUE, cex.axis=0.75)
axis(4,at=seq(from=250,length.out=7,by=40),labels=c("-60%","-40%","-20%","0","20%","40%","60%"))

##添加“同比增长曲线”和“环比增长曲线”
##同比增长 = (now[t]-pre[t])/pre[t]
same.pre.growth <- (data$now-data$pre)/data$pre
##环比增长 = (now[t]-now[t-1])/now[t-1]
ring.growth <- c(NA,diff(data$now)/data$now[1:(length(data$now)-1)])
a<-200;  b<-370;
lines(c(2,5,8,11,14,17,20), a*same.pre.growth+b,type="b",lwd=2)
lines(c(2,5,8,11,14,17,20), a*ring.growth+b,type="b",lwd=2,col="blue")

##在同比和环比曲线上添加文字
j <- 1
for(i in 1:length(data[,1])){ #在bar上画数值
	text(3*i-1, a*same.pre.growth[i]+b-5, paste(round(same.pre.growth[i]*10000)/100,
			"%",sep=""));
	j <- j+1;
	text(3*i-1, a*ring.growth[i]+b+5, paste(round(ring.growth[i]*10000)/100,
			"%",sep=""),col="blue");
	j <- j+2;
}
##在pv柱状图上添加文字
j <- 1
for(i in 1:length(data[,1])){
	text(j+0.5,data$pre[i]+10, data$pre[i], col="deepskyblue4");
	j < j+1  #组内间距为1
	text(j+1.5,data$now[i]+10, data$now[i], col="deepskyblue4");
	j <- j+3 #组外间距为3
}


效果如下:

技术分享

    图(2)

  说明:PV 表示Page View ,页面浏览量

             黑色的曲线,代表pv同比增长曲线

             蓝色的曲线,代表pv环比增长曲线

      从图(2)中可以看出,每周的周六和周日浏览量比较大,而星期一、星期二直到星期五的浏览量波动不大。浏览量的走势是:先减小,后增大,再减小,接着反弹到波峰,跟着回到平均水平。可以这么说,2014年12月6号周六,同比11月29号周六增长9.69%,环比12月5号周五增长47.36%

       

           



R语言中同比增长和环比增长