如何在r中的特定行拆分热图

  • 本文关键字:拆分 r split
  • 更新时间 :
  • 英文 :


我用R制作了一个热图,这是我从一个大数据框(1522列X 26行)制作的。我想把热图分成5个水平部分,分别位于第7、11、16和21行。

我已经尝试了下面的代码,但它不工作。

df <- read.csv("/home/Ahm/gene.csv")
View(df)
df1<- t(df[,2:ncol(df)])
colnames(df1) <- df[,1]
View (df1)
df2 <- scale(df1)
library(ComplexHeatmap)
library(RColorBrewer)
library(circlize)
mycols <- colorRamp2(breaks = c(0, 0.2, 0.3, 0.4, 0.6, 1.0), 
colors = c('yellow', 'pink', "orange", "red", "black", "blue"))
png("/home/aahm/Desktop/test.png",width=16,height=8,units="cm", res=100)
Heatmap(df1, width = unit(10, "cm"), height = unit(5, "cm"),
name = "site PI values",
row_names_gp = gpar(fontsize = 5.5), column_title = "Nucleotide Positions", row_title = '1000 Genomes populations',
column_title_side = "bottom",
col = mycols,
show_column_dend = FALSE, cluster_rows = FALSE,
column_order = order(as.numeric(gsub("column", "", colnames(df1)))),
column_names_rot = 45,
row_split = data.frame(rep(c("A", "B","C","D","E"), 7, 11, 15, 21, 26))
)
dev.off()

我有以下错误:错误:row_split的长度或宽度应该与matrix的长度或宽度相同。

我尝试了一些其他的方法,但都不起作用。有人能帮我一下吗?

我只需要创建一个包含每个水平部分的行数的变量。下面是代码:

row.subsections <- c(7,4,5,5,5)
row_split = data.frame(rep(c("A", "B", "C", "D", "E"), row.subsections)).

最新更新