R - 如何使用多年来缺失年份的数据制作堆积条形图

时间:2016-02-19 21:17:52

标签: r graphing

这是我在R中的情节: enter image description here

以下是制作情节的代码:

years <- c(1980, 1984, 1984, 1986, 1988)
pubs  <- c("book","book","poem","poem","book")
mypubs <- data.frame(years,pubs)
counts <- table(mypubs$pubs,mypubs$years)
barplot(counts,main="pubs per year",xlab="year",col=c("darkblue","red"),legend=rownames(counts))

这是时间序列数据,1981,1982,1983,1985和1987没有数据。数据是我在任何给定时间阅读一本书或一首诗。

是否有一种直接的方式来取消mypubs并为缺失的年份添加漏洞?我已经尝试过制作直方图,但是我无法弄清楚每年如何使它成为可靠的一个条形,我无法弄清楚如何使直方图做叠加的颜色。

2 个答案:

答案 0 :(得分:1)

在运行代码之前,请执行以下操作:

mydata$B <- factor(mydata$B, levels=1990:2015)

然后运行您的代码,您将看到1990年至2015年期间没有数据的0个计数。如果您想要不同的年份范围,请修改代码。

答案 1 :(得分:1)

从上面扩展Greg的答案,试试这个:

years <- c(1980, 1984, 1984, 1986, 1988)
pubs  <- c("book","book","poem","poem","book")
mypubs <- data.frame(years,pubs)

mypubs$years<-factor(mypubs$years, levels = as.character(1980:1990))

counts <- table(mypubs$pubs,mypubs$years)
barplot(counts,main="pubs per year",xlab="year",col=c("darkblue","red"),legend=rownames(counts))

“factor”命令将years列转换为因子,而可选的“levels”将设置可用的级别