R pheatmap使用中的问题

R pheatmap使用中的问题,r,heatmap,pheatmap,R,Heatmap,Pheatmap,我试着玩pheatmap,一开始就被卡住了 创建玩具示例: library(pheatmap) set.seed(1) my.mat <- matrix(rnorm(90), nrow = 30, ncol = 30) rownames(my.mat) <- 1:30 colnames(my.mat) <- 1:30 col.scale = colorRampPalette(c("red", "blue"), space = "rgb")(10) breaks.size = 1

我试着玩
pheatmap
,一开始就被卡住了

创建玩具示例:

library(pheatmap)
set.seed(1)
my.mat <- matrix(rnorm(90), nrow = 30, ncol = 30)
rownames(my.mat) <- 1:30
colnames(my.mat) <- 1:30
col.scale = colorRampPalette(c("red", "blue"), space = "rgb")(10)
breaks.size = 11
pheatmap(my.mat, color = col.scale, breaks = breaks.size, border_color = NA, cellwidth = 10, cellheight = 10)
它产生的情节似乎不正确:

例如,我不明白为什么右上角的单元格是白色的。我还认为设置
cellwidth=10
cellheight=10
意味着得到的是方形单元格,而不是矩形单元格。最后,如果有人知道是否有可能将行名和列名apear放在热图的同一侧作为登角图(即,在登角图的顶端),那就太好了。

好吧,您得到该错误的原因是您错误地使用了
breaks=
参数。从
?pheatmap
帮助页面

中断:覆盖mat中值范围的数字序列,比颜色向量长一个元素。用于将值映射到颜色。如果需要将某些值映射到特定颜色或特定值,则此选项非常有用。如果值为NA,则会自动计算断裂

不能像其他函数那样只传递一个值

我也不知道你说的细胞不是方形的。您正在绘制一个30x30的正方形(至少对我来说是这样)。因为您正在进行聚类,所以每个聚类只能得到一种颜色

我猜问题的一部分可能是,对于900个单元格的矩阵,您只生成了90个随机变量,因此这些值是重复的(您的数据非常结构化)。也许你的意思是

my.mat <- matrix(rnorm(900), nrow = 30, ncol = 30)
my.mat
my.mat <- matrix(rnorm(900), nrow = 30, ncol = 30)