在报告中,我想表示日期之间的状态变化矩阵。 假设我有一个这样的矩阵:
B = data.frame(c(0, 0, 0, 5, 0, 0,5,0,0,5,0,0,5,0,0,0), nrow=4, ncol=4)
dimnames(B)<-list(c("A","B","C","D"),c("D","C","B","A"))
B会是这样的:
D C B A
A 0 0 0 5
B 0 0 5 0
C 0 5 0 0
D 5 0 0 0
从D-> C-> B-> A的任何变化都是改进,并且从A-> B-> C-> D的变化将是一个问题。
我想在对角线(我的矩阵中的5)中使用中性背景颜色(将在对角线的右侧使用绿色)进行表示(将在knitr文档中使用),然后在对角线的右侧(改进)使用绿色,并且红色到离开(问题)。有什么建议怎么做?这些数字无论如何都应该出现,不应该改变背景颜色。
欢迎任何有关替代品的进一步建议。
答案 0 :(得分:4)
没有image
命令的“手工制作”矩阵的新版本
## the input data as vector (as in the question)
## size has to be a square number
values <- c(0, 0, 0, 5, 0, 0,5,0,0,5,0,0,5,0,0,0)
size <- sqrt(length(values))
a <- matrix(0, nrow=size, ncol=size)
a[lower.tri(a)] <- +1
a[upper.tri(a)] <- -1
image(a,col=c('red','transparent','green'),xaxt='n',yaxt='n',xlab='',ylab='')
text(rep(seq(1,0,len=size),len=size*size),rep(seq(0,1,len=size),each=size),values)