Pheatmap在图例中显示了错误的比例

时间:2018-08-16 21:08:08

标签: pheatmap

我正在使用pheatmap一段时间,但是这次我遇到了一个数据集,该数据集的分布范围太广。因此,我尝试使用分位数功能进行中断,并且这种方法行得通,但是仍然存在一些错误。图例的刻度完全是,它仅显示值和两端之一的颜色(最高值)。我不确定是否要解释自己。最低值为0,我的休息时间如下:

  0%      30%      40%      50%      60%      70%      80%      90%     100% 

0.0e + 00 2.0e-172 2.0e-132 8.0e-96 4.0e-79 1.0e-67 4.0e-55 5.2e-39 3.0e-05

白色的那些没有任何数值(NA)。我试图解决该问题,但无法解决。不确定是否有任何建议,但是对此我将非常感谢。

#read table
data = read.csv("",stringsAsFactors = FALSE, row.names = 1)
head(data)

#define matrix
mat = as.matrix(data)
quantile_breaks <- function(xs, n = 10) {
  breaks <- quantile(xs, probs = seq(0, 1, length.out = n),na.rm=T)
  breaks[!duplicated(breaks)]
}

mat_breaks <- quantile_breaks(mat, n = 11)
mat_breaks
pheatmap(
  mat               = mat,
  color             = plasma(length(mat_breaks)-1),
  breaks            = mat_breaks,
  border_color      = NA,
  show_colnames     = T,
  show_rownames     = T,
  cluster_rows      = F,
  cluster_cols      = F,
  drop_levels       = T,
  fontsize          = 14,
  na_col            ="white",
  fontsize_col      = 10, 
  fontsize_row      = 2,
)

我附上了热图和一个可重现的示例。

,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32 1,9.00E-65,1.00E-83 ,,, 9.00E-30 ,,, 0,0,0 ,,, 3.00E-05,,2.00E-51 ,,,,, 6.00E- 119,,4.00E-36,6.00E-163,0 ,,,,, 2,1.00E-74,1.00E-47,,3.00E-68,,6.00E-20 ,,, 0,0,0,4.00E-20 ,,, 1.00E-05 ,,,,,, ,5.00E-73,8.00E-53,7.00E-35,4.00E-104,0 ,,,, 8.00E-50

谢谢

enter image description here

0 个答案:

没有答案