我有一个很大的数据框(下面有一个类似的小例子),我想使用image()显示矩阵中的值。 首先,它绘制了从右边第一列开始并且从右向左的列,但是,我希望它在左边的第一列进行绘图,然后从左向右进行绘制。使用图像()绘图并注释行
其次,我想添加一个'颜色条'的情节表明行1和行2具有相同的$ taxid,行3和行4具有相同的$ taxid。类似于热图中的“ColSideColors”。
有什么建议吗?
谢谢
df<-data.frame(taxid=c("A","A","B","B"),c2=c(1,2,3,4),c3=c(3,4,5,6))
nr<-dim(df)[1]
nc<-dim(df)[2]
z<-as.matrix(log(df[,2:3]))
image(x=1:nc, y=1:nr, z=t(z), axes=FALSE, frame.plot=TRUE)
好了,我现在已经决定尝试,并为colorstip一个“瘦” barplot。但是,它不是'叠加'barplot(虽然高度是一个向量,并且旁边= FALSE。因此,当我使用布局将它们组合在一起时,它抱怨没有足够大的边距。
任何关于堆叠barplot,或其他更复杂的解决方案 感谢
layout(matrix(c(1,2),1,2,byrow=FALSE),heights=c(1,1),widths=c(1,9))
barplot(as.vector(table(df$taxid)),width=0.1,beside=FALSE,col=rainbow(length(table(df$taxid))))
image(x=1:nc, y=1:nr, z=t(z), axes=FALSE, frame.plot=TRUE)
检查这个问题的答案:http://stackoverflow.com/q/10124180/1183242 – Sophia 2012-04-19 14:18:53
具体而言,如关于你的第一个问题,如果你不喜欢列的顺序图像中,重新排列矩阵的列以满足您的需求。 – joran 2012-04-19 14:33:22