我正在使用Jaccard系数来识别人与人之间的异同。
但是我一直在努力代表系数(0-不相似,1个相似)。
此外,当我想跳过数据结构时,还会收到以下错误:
dput(head,m)中的错误:“文件”必须是字符串或连接
要创建热图,我正在使用以下代码:
heatmap(m, Colv = NA, Rowv = NA,
scale = "none",
xlab = "Identification Numbers",
ylab = "Identification Numbers")
如果我增加案例数量,就很难读取热图的轴。
如何调整轴以显示每10个案例?
我还如何向热图添加图例?
非常感谢
答案 0 :(得分:1)
不幸的是,没有内置的支持。但是,这里有一个解决轴断裂的方法:为行和列名称创建一个字符向量,并将10个元素中的9个替换为空白。
mat <- matrix(runif(10000, min = 0, max = 10), ncol = 100, byrow = T)
rows <- as.character(1:nrow(mat))
rows[-seq(0, length(rows), 10)] <- ""
cols <- as.character(1:ncol(mat))
cols[-seq(0, length(cols), 10)] <- ""
heatmap(mat,
Colv = NA, Rowv = NA,
labRow = rows,
cexRow = 1,
labCol = cols,
cexCol = 1)
如果您愿意使用其他软件包,我建议使用levelplot()
-package中的lattice
:
(情节毫无意义,只是展示其功能的视觉效果)
library(lattice)
library(RColorBrewer)
rows <- seq(11010903, 11011203, length.out = nrow(mat))
cols <- seq(11010903, 11011203, length.out = ncol(mat))
pal <- colorRampPalette(c("red", "yellow"), space = "rgb")
levelplot(mat, xlab="", ylab="",
row.values = rows, column.values = cols,
col.regions = pal(5), at = seq(1,10, by = 2), scales = list(tck = c(1,0)))