我有一个矩阵X
,它有5列和3825行(占天数)。值为0
,1
或NA
。
station1 station2 station3 station4 station5
0 0 0 0 0
1 0 0 0 0
1 1 0 0 0
0 1 0 0
0 0 0 0
我想创建一个水平条形图,其长度为x轴3825和6个条形,每列一个。 如果单元格中的值为1,那么我希望它是红色,如果不是,我希望它是黑色的。我不想总结每一栏中的所有1,并向我展示总和。 我想这样做是为了有5个水平条,颜色为红色和黑色,以便更容易检查1s存在多于1个工作站时是否存在日行。
我感谢任何帮助,我一直在寻找答案。我想过:
barplot((c(X[,1],X[,2],X[,3],X[,4],X[,5]),nr=5), width=1, space=1,main="Heatwaves Dates", beside=FALSE, xlab="Days", ylab="Stations", ifelse(X==1, "red","black"), horiz=TRUE, xlim=c(1,3825),xpd=TRUE,border=NA, names.arg=1:5, cex.names=0.75, las=1)
但显然它不起作用。
答案 0 :(得分:0)
您似乎在寻找热图,而不是堆积的条形图。
set.seed(1)
X <- matrix(as.numeric(runif(3825*5)<0.4),ncol=5,
dimnames=list(NULL,paste0("station",1:5)))
heatmap(t(X),Rowv=NA,Colv=NA,col=c("black","red"),labCol="")
使用axis()
根据需要向x轴添加标签。请查看?heatmap
以获取更多信息。