我有一个矩阵,想要绘制四分位数范围的垂直误差线和矩阵中的列的平均值。我怎么在R特别是ggplot2中这样做呢?下面给出了一个样本矩阵:
##Create matrix
B = matrix (c(2,4,3,1,5,7,5,3,8,3,7,3),nrow=4,ncol=3)
##Create zoo object
B2<-as.zoo(B)
colnames(B2)<- c("A","B","C")
B2
A B C
2 5 8
4 7 3
3 5 7
1 3 3
##The Dates for the columns:
Date<-as.yearmon (seq(as.Date("2000/1/1"), by = "month", length.out = 3))
我想要一个时间序列图,但每个时间戳都有一个基于行的垂直IQR误差条。这是我试图实现的结果的一个例子'但是,不是在x轴上有城镇,我将有行id或日期。
答案 0 :(得分:2)
我不得不长途跋涉,所以这就是我所做的(使用25%和75%百分位数):
##Create matrix
B = matrix (c(2,4,3,1,5,7,5,3,8,3,7,3),nrow=4,ncol=3)
##Create dataframe
B2<-as.data.frame(B)
colnames(B2)<- c("A","B","C")
##Create date sequence
##To compute quantile by row
D<-apply(B2,2,quantile)
##Select 1st and 3rd quartile (25% and 75%) and transpose to make them columns.
D2<-t(D[c(2,4),])
##Mean
CO<-apply(B2,2,mean)
DM<-as.data.frame(cbind(D2,CO))
##Create dates
Date<-as.character(as.yearmon (seq(as.Date("2000/1/1"), by = "month", length.out = 3)))
##Add to dataframe
DM$Date<-Date
colnames(DM)<-c("Q1","Q3","CO","Date")
##Plot using ggplot2
library(ggplot2)
ggplot(DM, aes(x=Date, y=CO,group=1,colour="CO")) +
geom_errorbar(aes(ymin=Q1, ymax=Q3), width=.1) +
geom_point(size=3) +
geom_line(aes())
如果有任何想法,我不会介意这样做更容易。