如题,在NC上下了一个数据准备用heatmap()复现一下,用AI提供的代码就很好画出来简单的,结果用自己的数据画就出现一直卡住的情况,排除了一晚上应该不是一些参数方面的问题,比如show_rowname=TRUE的情况,因为调了没有影响,初步发现问题出现在矩阵行列的那一块,代码让AI改一直出错,导致后来的矩阵一直把我的基因名称给吃了,求各位指点
代码是:
# 加载所需的包
if (!requireNamespace("pheatmap", quietly = TRUE)) {
install.packages("pheatmap")
}
if (!requireNamespace("readxl", quietly = TRUE)) {
install.packages("readxl")
}
library(pheatmap)
library(readxl)
# 选择文件路径
file_path <- file.choose() # 这将打开一个文件选择对话框
# 读取 Excel 数据
data <- read_excel(file_path, sheet = 1) # 读取第一个工作表
# 将数据框转换为矩阵,并设置行名
data_matrix <- as.matrix(data[, -1]) # 去掉第一列(基因名称)
rownames(data_matrix) <- data[[1]] # 将第一列设置为行名
# 确保数据为数值类型
data_matrix <- apply(data_matrix, 2, as.numeric)
# 检查缺失值
if (any(is.na(data_matrix))) {
data_matrix[is.na(data_matrix)] <- 0 # 用 0 填充 NA
}
# 设置图形设备
png("heatmap.png", width = 500, height = 300) # 调整整体图形的宽度和高度
# 自定义调色
custom_colors <- colorRampPalette(c("#5caad7", "white", "#bb1e38"))(256) # 自定义调色
# 绘制热图
pheatmap(data_matrix,
color = custom_colors, # 使用自定义调色
cluster_rows = TRUE, # 启用行聚类
cluster_cols = FALSE, # 不启用列聚类
main = "聚类热图示例",
display_numbers = FALSE, # 显示数值
cellwidth = 10, # 单元格宽度
cellheight = 20, # 单元格高度
legend = TRUE, # 显示图例
fontsize_row = 12, # 行标签字体大小
fontsize_col = 10, # 列标签字体大小
show_rownames = TRUE)
跑出来的图片如下
AI随机生成的数据的代码跑出来如下
NC上下载的数据是这样的(没截完,剩余的形式上没什么大区别):
前面data的结构是这样的,看着蛮正常:
但是后面data_matrix里的就把基因那一列给我吃了:
调了一晚上也没调出来,所以请各位们帮我看看该怎么搞,谢谢!