现在我有一列数据,超过 500 行。
#example
df <- data.frame(
City = c("New York", "LA", "DC", "Boston", "Chicago"),
Data = c(780, 982, 111, 893, 989)
我想构建一个热图,但我只有一个变量,即城市。
我可以将此列拆分为多列并创建热图吗?
我是 R 的新手,我在网上找不到任何答案。
提前致谢!
最佳答案
诀窍是用 cbind 和 plot 复制单列...
library(gplots)
df <- data.frame(
City = c("New York", "LA", "DC", "Boston", "Chicago"),
Data = c(780, 982, 111, 893, 989)
)
heatmap.2(cbind(df$Data, df$Data), trace="n", Colv = NA,
dendrogram = "row", labCol = "", labRow = df$City, cexRow = 0.75)
将数据包装为 5x2(或 100)的示例
请注意,我完全关闭了树状图,因为任何排序都是毫无意义的。
heatmap.2(matrix(df$Data, ncol = 2), trace="n", Colv = FALSE, Rowv=FALSE,
cellnote = matrix(df$City, ncol = 2), notecol = 1, scale = "none",
dendrogram = "none", labCol = "", labRow = "", cexRow = 0.75)
labRow
: 设置行标签(使用 ""
没有标签)cellnote
: 设置单元格标签(如果确实需要单元格标签,请删除此参数)col
: 设置调色板。我的建议是使用 colorspace
、 RColorBrewer
或 colorRamps
中的预定义调色板。一些建议:
col=col=colorspace::sequential_hcl(15)
col=col=RColorBrewer::brewer.pal(9, "BuGn"
col=colorRamps::ygobb(25)
See this link 有关 R 中调色板的更多信息关于r - R 中一列数据的热图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44768528/