我在csv文件here中有一个二元邻接矩阵,其中0 =不是朋友,1 =是朋友。使用Nathan Yau快速简便的热图教程,我尝试用两种颜色制作热图可视化。我使用下面的代码。
> test <- read.csv("/Users/Cindy/Desktop/untitled.csv", sep=",")
> row.names(test) <- test$name
> test <- test[,2:108]
> test_matrix <- data.matrix(test)
> dim(test)
[1] 107 107
> test_heatmap <- heatmap(test_matrix, Rowv=NA, Colv=NA, col = cm.colors(2), scale="column", margins=c(10,10))
出于某种原因,会发生这种情况:see image。
如果查看csv文件,可视化中应该有更多的紫色方块,并且我的可视化中存在令人困惑的白线。
如果有人能帮助我找出问题所在,我会非常感激!
答案 0 :(得分:0)
问题在于颜色的数量太少,以至于大多数只有“1”作为条目的对不能满足要着色的阈值。看看计数的分布尝试:
table(test_matrix)
test_matrix
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
9434 2016 1 1 1 1 1 1 1 1 1 1 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
96 97 98 99 100 101 102 103 104 105 106 107
1 1 1 1 1 1 1 1 1 1 1 1
增加颜色数量可以提供更多信息:
test_heatmap <- heatmap(test_matrix, Rowv=NA, Colv=NA,
col = cm.colors(100), scale="column", margins=c(10,10))
答案 1 :(得分:0)
如果您安装了gplots
软件包,请尝试使用heatmap.2()
函数,它支持相同的语法,但您会获得一个颜色键/图例,它可能会为您提供有关正在进行的操作的详细信息。颜色分解的条款。
一个有用的事情是为这两种颜色创建自己的“调色板”,例如,在你的情况下它很简单,只需要输入
col = c("violet", "turquoise1")
同样有用的是使用cellnotes
创建额外的热图。这只是一个热图,您可以在其中显示单元格中的值。然后,您可以查看是否正确分配了0
和1
,以及这些白色单元格中发生了什么。
看起来有点像这样