服务热线
178 0020 3020
上次居然有个同学说我copy别人代码。。。。好歹作为一个background是computer science的同学,人生学会的第一个语言是c++,对于抄代码这种事情我实在不知道我有什么必要去做。不过回头想想,可能是上次有其他棘手任务,做作业不那么认真吧,总之有则改之无则加勉咯。这次作业为了体现我是个严肃的人,我把我自己知道的画热图的常用方法都用了一遍,希望能弥补这种我会copy别人代码的误解。。。。
直接用原始的csv数据文件做热图(Excel的条件格式功能,具体步骤懒得讲了)
用ggplot2的geom_tile与geom_raster做热图
> dat = read.csv(file.choose())
> library(ggplot2)
> library(reshape2)
> dat_reshape = melt(dat,id.vars = "ID",variable.name = "Category",value.name = "Label")
> dat_reshape$Label = scale(dat_reshape$Label,center = T,scale = T)
> p = ggplot(dat_reshape,aes(x=Category,y=ID,fill=Label))
> p+geom_tile()+scale_fill_gradient2(low = "green",mid="black",high = "red")+ggtitle("R2-29 CC geom_tile")
> p+geom_raster()+scale_fill_gradient2(low = "blue",mid="white",high = "red")+ggtitle("R2-29 CC geom_raster")
3.用pheatmap包的pheatmap函数做热图
> library(pheatmap)
> dat = read.csv(file.choose())
> dat_matrix = as.matrix(dat[1:16,2:5])
> rownames(dat_matrix) = dat[1:16,1]
> pheatmap(dat_matrix,display_numbers = TRUE, number_format = "%.2f")
附件