如data.frame为:zz, 绘图如下:
a. single protein:线性回归画法
1. ggplot(zz,aes(x=a, y=HDL))+
geom_point(alpha=1,colour="#FFA54F")+
geom_smooth(method = lm,colour="#8B658B")+
#scale_color_brewer(palette = "Set1")+
theme_bw()+
labs(x="Ferritin",y="HDL.C",title="Pearson’s correlation test of ferritin and HDL.C")+
annotate("text", x = 1000, y = 2.5, label = "r = -0.51",colour="black",size=4)
2. library(ggstatsplot)
ggscatterstats(data = alldata,
y = TRANSFUSION.UNIT,
x = NPTXR,
centrality.para = "mean", #"mean" or "median"
margins = "both",
xfill = "#D8BFD8",
yfill = "#EEDD82",
#line.size= ,
line.color="#8B6969",
point.color="#2F4F4F",
marginal.size=4,
marginal.type = "density", # "histogram", "boxplot", "density", "violin", "densigram")
title = "Relationship between TRANSFUSION.UNIT and NPTXR")
b. ggcorrplot, 全部蛋白 global correlation map 画法
ggcorrplot(cor(alldata))
2. summary(lm(y~x),method=" ") %>%.[["coefficients"]] 正规线性回归
(其实就是:a<-lm(y~x1+x2+...,data)
plot(summary(lm(y~x),method=" ")) #绘图
3. ggcor部分数据绘图: 数据类型为data.frame,纵坐标为各指标or各蛋白,行为观测值。
data <- fortify_cor(alldata[,10:11],alldata,cluster.type = "col")
ggcor<-ggcor(data,label_size=0.5) +
geom_colour()+
theme(axis.text.x = element_text(colour = "black",size = 4.7),
axis.text.y=element_text(size=5.5),
axis.ticks=element_blank())+
geom_num(aes(num=r),colour="black",size=1.5)
4. corrr包画法
datasets::mtcars %>%
correlate() %>%
focus(-cyl, -vs, mirror = TRUE) %>%
rearrange() %>%
network_plot(min_cor = .2)
框内的数字是行变量和列变量之间的相关系数R,相关系数R绝对值越大,颜色越深(红正,蓝负)。统计学中,P值越小相关性越显著,一般来说 一个*代表显著相关(P值为0.01,选取不同参数可能不一样)、两个**代表极显著相关(P值为0.001)、三个***代表极极显著相关(P值为0.0001). 图中还可以看出,相关系数R的绝对值0.67(变量P50与T之间)以上的都显著相关,至少一个*。符合一般关于相关系数R值的显著性统计。
Step1. 绘图数据的准备首先还是要把你想要绘图的数据调整成R语言可以识别的格式, 在excel中保存成csv。
数据的格式如下图:
Step2. 绘图数据的读取
data <- read.csv(“your file path”, header = T)
登录后复制
Step3.绘图所需package的调用
library(pheatmap) ## 调用之前先安装install.packages("pheatmap")
登录后复制
Step4.绘图
df <- data[,-c(11,12)]
bk <- c(seq(-3, 2,by = 0.01))
pheatmap(df,
cluster_cols = F, cluster_rows = F, scale = "none",
treeheight_col = 0, treeheight_row = 0,
display_numbers = F,
border_color = "black",
color = colorRampPalette(c("blue","white", "red"))(length(bk)))
登录后复制
调整行标签
得到上图之后,小仙发现行名是"1", “2”, “3”… ,并不是想要的"Group 1",“Group 2”, “Group 3”…
原来需要将df的rownames重新赋值一下
rownames(df) <- data$Group
rownames(df)
pheatmap(df,
cluster_cols = F, cluster_rows = F, scale = "none",
treeheight_col = 0, treeheight_row = 0,
display_numbers = F,
border_color = "black",
color = colorRampPalette(c("blue","white", "red"))(length(bk)))
登录后复制
添加行注释
很多时候数据不只一列标签,在画热图的时候除了行名或者列名之外,还要添加注释标签
annotation_row = data.frame(Class = factor(data$Class))
rownames(annotation_row) <- data$Group
pheatmap(df,
cluster_cols = F, cluster_rows = F, scale = "none",
treeheight_col = 0, treeheight_row = 0,
annotation_legend = T,
display_numbers = F,
annotation_row = annotation_row,
border_color = "black",
color = colorRampPalette(c("blue","white", "red"))(length(bk)))
登录后复制
调整热图色块和行注释的颜色
mycolors <- c("#66C2A5","#FC8D62","#E78AC3")
names(mycolors) <- unique(annotation_row$Class)
mycolors <- list(Class = mycolors)
pheatmap(df,
cluster_cols = F, cluster_rows = F, scale = "none",
treeheight_col = 0, treeheight_row = 0,
annotation_legend = T,
display_numbers = F,
annotation_row = annotation_row,
annotation_colors = mycolors,
border_color = "black",
color = colorRampPalette(c("navy", "white", "firebrick3"))(length(bk)))
登录后复制
采用默认颜色
如果希望使用pheatmap包默认的色块颜色,只要将以下的语句删掉就可以。