SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研!
本期分享:
【SCI绘图】【热力图系列2 R】多特征相关性分析热力图指定聚类 R

1.环境准备
library(gplots)
library(RColorBrewer)
2.数据读取
#########################################################
### reading in data and transform it to matrix format
#########################################################data <- read.csv("dataset.csv", comment.char="#")
rnames <- data[,1]                            # assign labels in column 1 to "rnames"
mat_data <- data.matrix(data[,2:ncol(data)])  # transform column 2-5 into a matrix
rownames(mat_data) <- rnames                  # assign row names3.绘图展示
#########################################################
### customizing and plotting heatmap
########################################################## creates a own color palette from red to green
my_palette <- colorRampPalette(c("red", "yellow", "green"))(n = 299)# creates a 5 x 5 inch image
png("h3_categorizing.png",width = 5*300,        # 5 x 300 pixelsheight = 5*300,res = 300,            # 300 pixels per inchpointsize = 8)        # smaller font sizeheatmap.2(mat_data,cellnote = mat_data,  # same data set for cell labelsRowSideColors = c(    # grouping row-variables into differentrep("gray", 3),   # categories, Measurement 1-3: greenrep("blue", 3),    # Measurement 4-6: bluerep("black", 4)),    # Measurement 7-10: redmain = "Categories",  # heat map titlenotecol="black",      # change font color of cell labels to blackdensity.info="none",  # turns off density plot inside color legendtrace="none",         # turns off trace lines inside the heat mapmargins =c(12,9),     # widens margins around plotcol=my_palette,       # use on color palette defined earlier dendrogram="row",     # only draw a row dendrogramColv="NA")            # turn off column clustering# adding a color legend for the categories
par(lend = 1)           # square line ends  for the color legend
legend("topright",      # location of the legend on the heatmap plotlegend = c("category1", "category2", "category3"), # category labelscol = c("gray", "blue", "black"),  # color keylty = 1,            # line stylelwd = 10,           # line width)dev.off()