我想在代码中使用热图,但出现错误

时间:2019-07-13 12:49:59

标签: r

heatmap(Web_Data$Timeinpage) 
str(Web_Data)
heat = c(t(as.matrix(Web_Data$Timeinpage[,-1])))
heatmap(heat)

1 个答案:

答案 0 :(得分:0)

这里需要注意的几件事:

1)通过在c()中包含c(t(as.matrix(Web_Data$Timeinpage[,-1])))运算符,您正在创建单个向量而不是矩阵。您可以通过运行以下命令来查看此内容:is.matirx(c(t(as.matrix(Web_Data$Timeinpage[,-1]))))heatmap(我相信)正在检查矩阵,因为...

2)您需要提供一个至少包含两行两列的矩阵,此功能才能起作用。目前,您只能提供向量-时间。您需要提供其他一些有趣的功能以使其正常工作,例如Continent

3)如果仅打算绘制一个字段,则可以考虑使用suggested here并使用image()函数。 (我在下面提供了一个示例)。

4)我发现热图功能看上去有些过时。您可能需要考虑其他流行的功能,例如ggplot的geom_tile。 (请参见here)。

下面是一个示例代码,应产生输出:

#fake data
Web_Data <- data.frame("Timeinpage" = c(123,321,432,555,332,1221,2,43,0, NA,10, 44), 
OTHER = rep(c("good", "bad",6)) )

#a matrix with TWO columns from my data frame. Notice the c() is removed and I am not transposing. Also removing the , from [,-1]
heat <-  matrix(c(Web_Data$Timeinpage[-1], Web_Data$OTHER[-1]), 2,11)

#output
heatmap(heat)

#one row
heat2 <- as.matrix(sort(Web_Data$Timeinpage[-1])) #sorting as well

#output
image(heat2)