r - 如何调整热图的轴?
问题描述
我正在使用 Jaccard 系数来识别人与人之间的异同。
但是,我正在努力表示系数(0 - 不同,1 相似)。
此外,当我想过去我的数据结构时,我收到以下错误:
dput(head, m) 中的错误:“文件”必须是字符串或连接
要创建热图,我使用以下代码:
heatmap(m, Colv = NA, Rowv = NA,
scale = "none",
xlab = "Identification Numbers",
ylab = "Identification Numbers")
如果我增加案例的数量,则热图的轴很难阅读。
如何调整轴以显示每 10 个案例?
另外,如何在热图中添加图例?
非常感谢
解决方案
不幸的是,两者都没有内置支持。但这里是轴中断的解决方法:为行名和列名创建一个字符向量,并将 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()
从lattice
-package 推荐的另一个包:
(情节毫无意义,它只是展示它可以做什么的视觉效果)
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)))
推荐阅读
- reactjs - react-hook-form 控制器值未提交
- javascript - 制作一个不会触发 mouseLeave 的可点击 SVG
- javascript - date-fns 格式 24 小时格式的时间
- python - 如何在 s 循环中评估用户的输入?
- c++ - 为什么在带有向量c ++的for循环结束时会发生这种情况
- javascript - 根据 Angular 11 中的另一个下拉菜单更改下拉菜单?
- flutter - 'Flutter run --verbose' 和 Visual Studio Icon 之间的区别?(当我运行我的应用程序时)
- python - Python在两个整数的两个元组之间交换元素
- java - 空白是Java中的标记吗?
- c - 如何在函数中使用`malloc/calloc`?