绘制包括 NA 在内的热图
plot heatmap including NA
我正在绘制以下 csv 文件的热图:
"people","1","2","3","4","5","6","7","8","9"
"Ej1",0,0,0,1,0,1,1,1,0
"Ej2",0,1,1,0,0,0,1,1,0
"Ej3",0,1,1,1,0,0,0,1,1
"Ej4",0,1,0,0,1,1,0,0,1
"Ej5",1,0,1,1,0,1,1,1,1
"Ej6",1,1,0,1,1,1,0,0,0
"Ej7",0,1,1,0,0,0,0,1,1
"Ej8",0,0,1,1,1,1,1,0,0
"Ej9",1,1,0,0,1,0,0,1,1
使用下面的代码我得到了下面的热图并且工作正常
library(reshape2)
library(ggplot2)
library(scales)
library(plyr)
data <- read.csv("fruits2.txt", head=TRUE, sep=",")
data$people <- factor(data$people,levels=rev(data$people))
data.m = melt(data)
#data.m <- ddply(data.m, .(variable), transform, rescale = rescale(value))
data.m[,"rescale"]<-rescale(data.m[,"value"],to=c(0,1))
fewer.labels <- c("Ej9","Ej8","Ej7","Ej6","Ej5","Ej4","Ej3","Ej2","Ej1")
p <- ggplot(data.m, aes(variable, people)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_y_discrete(labels=fewer.labels) +
scale_fill_gradient(low = "red", high = "green") +
theme(axis.text=element_text(size=8))
现在我正在尝试绘制相同的 fruits.txt 文件,但包含一些缺失值,因此该文件包含 NA 值。当整个列为 NA 时,它不会绘制该列,是否可以像使用孤立的 NA 值那样绘制该列的阴影?
"people","1","2","3","4","5","6","7","8","9"
"Ej1",0,0,0,1,0,1,1,NA,0
"Ej2",0,1,1,0,0,0,1,NA,0
"Ej3",0,1,1,1,0,0,0,NA,1
"Ej4",0,NA,0,0,NA,1,0,NA,1
"Ej5",1,0,1,1,0,1,1,NA,1
"Ej6",1,1,0,1,1,1,0,NA,0
"Ej7",0,1,1,0,0,0,0,NA,1
"Ej8",0,0,1,1,1,1,1,NA,0
"Ej9",1,1,0,0,1,0,0,NA,NA
如果在melt
中没有指定id
变量,people
和8
列都被视为id,并且在变量列中放X8的熔融数据。然后,您不会在热图中绘制变量 X8。
使用melt(data,id='people')
应该可以解决。
我正在绘制以下 csv 文件的热图:
"people","1","2","3","4","5","6","7","8","9"
"Ej1",0,0,0,1,0,1,1,1,0
"Ej2",0,1,1,0,0,0,1,1,0
"Ej3",0,1,1,1,0,0,0,1,1
"Ej4",0,1,0,0,1,1,0,0,1
"Ej5",1,0,1,1,0,1,1,1,1
"Ej6",1,1,0,1,1,1,0,0,0
"Ej7",0,1,1,0,0,0,0,1,1
"Ej8",0,0,1,1,1,1,1,0,0
"Ej9",1,1,0,0,1,0,0,1,1
使用下面的代码我得到了下面的热图并且工作正常
library(reshape2)
library(ggplot2)
library(scales)
library(plyr)
data <- read.csv("fruits2.txt", head=TRUE, sep=",")
data$people <- factor(data$people,levels=rev(data$people))
data.m = melt(data)
#data.m <- ddply(data.m, .(variable), transform, rescale = rescale(value))
data.m[,"rescale"]<-rescale(data.m[,"value"],to=c(0,1))
fewer.labels <- c("Ej9","Ej8","Ej7","Ej6","Ej5","Ej4","Ej3","Ej2","Ej1")
p <- ggplot(data.m, aes(variable, people)) +
geom_tile(aes(fill = rescale), colour = "white") +
scale_y_discrete(labels=fewer.labels) +
scale_fill_gradient(low = "red", high = "green") +
theme(axis.text=element_text(size=8))
现在我正在尝试绘制相同的 fruits.txt 文件,但包含一些缺失值,因此该文件包含 NA 值。当整个列为 NA 时,它不会绘制该列,是否可以像使用孤立的 NA 值那样绘制该列的阴影?
"people","1","2","3","4","5","6","7","8","9"
"Ej1",0,0,0,1,0,1,1,NA,0
"Ej2",0,1,1,0,0,0,1,NA,0
"Ej3",0,1,1,1,0,0,0,NA,1
"Ej4",0,NA,0,0,NA,1,0,NA,1
"Ej5",1,0,1,1,0,1,1,NA,1
"Ej6",1,1,0,1,1,1,0,NA,0
"Ej7",0,1,1,0,0,0,0,NA,1
"Ej8",0,0,1,1,1,1,1,NA,0
"Ej9",1,1,0,0,1,0,0,NA,NA
如果在melt
中没有指定id
变量,people
和8
列都被视为id,并且在变量列中放X8的熔融数据。然后,您不会在热图中绘制变量 X8。
使用melt(data,id='people')
应该可以解决。