我想从全部比较中生成热图。我有数据,已经缩放到 0-1。但是,我的值仅用于以一种方式进行比较,而不是用于同一组之间的比较(始终为 1),即我有一半的矩阵而缺少另一半和对角线。将其转换为 ggplot2 可用于热图的形式的好方法是什么?
这是我拥有的数据的一个示例:
A B value
T1 T2 0.347
T1 T3 0.669
T2 T3 0.214
我假设以下是我需要的 ggplot (或者我可能不需要,如果 ggplot 可以以某种方式生成它?):
A B value
T1 T2 0.347
T1 T3 0.669
T2 T3 0.214
T2 T1 0.347
T3 T1 0.669
T3 T2 0.214
T1 T1 1
T2 T2 1
T3 T3 1
然后我会跑
sorted<-data[order(data$A, data$B), ]
ggplot(sorted, aes(A, B)) +
geom_tile(aes(fill = value), colour = "white") +
scale_fill_gradient(low = "black", high = "red") +
我已经解决了这个问题,但是(我假设是)一种涉及 for 循环的非常糟糕的方式。必须有更好的方法来从上面的第一个数据帧到第二个!
干杯