我有一个按行组织的数据文件,其中有一个 x 标签、y 标签,然后是一个值。基本结构如下所示:
Factor_1,Factor_2,Number
apple,apple,1
banana,apple,1
apple,kiwi,6
apple,pear,1
watermelon,apple,8
banana,banana,3
banana,kiwi,2
banana,pear,1
banana,watermelon,9
kiwi,kiwi,9
pear,kiwi,4
kiwi,watermelon,4
pear,pear,3
pear,watermelon,9
watermelon,watermelon,1
...
...
使用这些数据,我正在使用以下代码构建类似于相关矩阵的东西:
library(ggplot2)
library(reshape2)
d <- read.csv("my_file", head=TRUE, sep="\t")
x <- dcast(d, Factor_1~Factor_2)
x.m <- melt(x)
x.m <- ddply(x.m, .(variable))
(p <- ggplot(x.m, aes(variable, Factor_1)) + geom_tile(aes(fill = value), colour = "black") + scale_fill_gradient(low = "black", high = "green")
上面的代码给了我一个看起来像这样的情节:
如何重新排序数据以构建具有以下格式的图,其中所有数据都分组在对角线下方?
A B K P W
W 1
P 3 9
K 9 4 4
B 3 2 1 9
A 1 1 6 1 8