【问题标题】:change levels of column names of a matrix for plotting heatmap更改矩阵列名的级别以绘制热图
【发布时间】:2018-11-19 03:39:11
【问题描述】:

我有我的矩阵,我准备使用 R 中的 pheatmap 包绘制热图。

我的矩阵是这样的:

Name A B C
Apple 1 2 3
Banana 4 5 6
Pear 7 8 9

如果我不对列进行聚类,热图会将列排序为 A、B 和 C。如果我想将顺序设置为 B、C、A 怎么办?

我试过了:

colnames(matrix)<-factor(colnames(matrix),levels = c("B","C","A"))

但它不起作用。

【问题讨论】:

    标签: r heatmap levels columnname pheatmap


    【解决方案1】:

    只需手动重新排列矩阵的列即可。

    mat <- as.matrix(data.frame(df[, -1], row.names = df[, 1]))
    
    library(pheatmap)
    pheatmap(mat[, c("B", "C", "A")], cluster_rows = F, cluster_cols = F)
    


    样本数据

    df <- read.table(text =
        "Name A B C
    Apple 1 2 3
    Banana 4 5 6
    Pear 7 8 9", header = T)
    

    【讨论】:

    • 感谢您的回答!!但是我可以为 pheatmap 之外的列名设置级别吗?因为我也想将该级别应用于其他地块
    • @LennonLee 我不太确定你的意思。您可以在绘图之前重新排序列,例如mat &lt;- mat[, c("B", "C", "A")].
    猜你喜欢
    • 2016-12-08
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多