R - 如何为缺少年份的数据制作堆积条形图
R - How to make stacked bargraph for data over years with missing years
这是我在 R 中的情节:
这是制作情节的代码:
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
并为缺失的年份添加漏洞?我试过绘制直方图,但我无法弄清楚如何使它可靠地成为每年一个柱状图,而且我无法弄清楚如何使直方图进行堆叠颜色。
在您 运行 您的代码之前,请执行以下操作:
mydata$B <- factor(mydata$B, levels=1990:2015)
然后 运行 您的代码,您将看到 1990 年到 2015 年之间没有数据的年份计数为 0。如果您想要不同的年份范围,请修改代码。
从上面扩展 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" 命令将年列转换为因子,而可选的 "levels" 将设置可用级别
这是我在 R 中的情节:
这是制作情节的代码:
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
并为缺失的年份添加漏洞?我试过绘制直方图,但我无法弄清楚如何使它可靠地成为每年一个柱状图,而且我无法弄清楚如何使直方图进行堆叠颜色。
在您 运行 您的代码之前,请执行以下操作:
mydata$B <- factor(mydata$B, levels=1990:2015)
然后 运行 您的代码,您将看到 1990 年到 2015 年之间没有数据的年份计数为 0。如果您想要不同的年份范围,请修改代码。
从上面扩展 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" 命令将年列转换为因子,而可选的 "levels" 将设置可用级别