gpt4 book ai didi

r - heatmap.2 指定行顺序还是防止重新排序?

转载 作者:行者123 更新时间:2023-12-02 01:21:23 26 4
gpt4 key购买 nike

我正在尝试使用 heatmap.2(下面的代码)生成一些对数转换的倍数变化数据图。

我想按照最后一列中的值(从大到小)对热图中的行进行排序。这些行正在自动排序(我不确定“幕后”使用的精确计算),如图所示,正在执行一些聚类。

样本数据

gid     2hrs    4hrs    6hrs    8hrs
1234 0.5 0.75 0.9 2
2234 0 0 1.5 2
3234 -0.5 0.1 1 3
4234 -0.2 -0.2 0.4 2
5234 -0.5 1.2 1 -0.5
6234 -0.5 1.3 2 -0.3
7234 1 1.2 0.5 2
8234 -1.3 -0.2 2 1.2
9234 0.2 0.2 0.2 1
0123 0.2 0.2 3 0.5

代码

data <- read.csv(infile, sep='\t',comment.char="#")
rnames <- data[,1] # assign labels in column 1 to "rnames"
mat_data <- data.matrix(data[,2:ncol(data)]) # transform columns into a matrix
rownames(mat_data) <- rnames # assign row names

# custom palette
my_palette <- colorRampPalette(c("turquoise", "yellow", "red"))(n = 299)
# (optional) defines the color breaks manually for a "skewed" color transition
col_breaks = c(seq(-4,-1,length=100), # for red
seq(-1,1,length=100), # for yellow
seq(1,4,length=100)) # for green

# plot data
heatmap.2(mat_data,
density.info="none", # turns off density plot inside color legend
trace="none", # turns off trace lines inside the heat map
margins =c(12,9), # widens margins around plot
col=my_palette, # use on color palette defined earlier
breaks=col_breaks, # enable color transition at specified limits
dendrogram='none', # only draw a row dendrogram
Colv=FALSE) # turn off column clustering

情节

enter image description here

我想知道是否有人可以建议如何关闭重新排序,以便我可以按最后一列重新排序矩阵并强制使用此顺序,或者破解 heatmap.2 函数来执行此操作。

最佳答案

您未指定 Rowv=FALSE,默认情况下,行会重新排序(在 heatmap.2 帮助中,对于参数 Rowv :

determines if and how the row dendrogram should be reordered. By default, it is TRUE, which implies dendrogram is computed and reordered based on row means. If NULL or FALSE, then no dendrogram is computed and no reordering is done.

因此,如果您想根据最后一列对行进行排序,您可以这样做:

mat_data<-mat_data[order(mat_data[,ncol(mat_data)],decreasing=T),]

然后

heatmap.2(mat_data,
density.info="none",
trace="none",
margins =c(12,9),
col=my_palette,
breaks=col_breaks,
dendrogram='none',
Rowv=FALSE,
Colv=FALSE)

您将得到以下图像: enter image description here

关于r - heatmap.2 指定行顺序还是防止重新排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com