在高通量文章中,经常会出现散点图这种结果展示形式,如下图,用来展示两组数据之间的表达分布,体现两组数据整体的差异分布情况。X轴和Y轴分别代表两组的表达值,蓝色代表两组无差异的基因,红色代表上调基因(相对于WT 组而言),绿色代表下调基因(相对于WT组而言)。
Figure1
今天呢,来简单演示下散点图的绘制方法,有数据的小伙伴可以试试!
首先清除环境,安装并加载所需要的R包
rm(list = ls()) #清除环境内存
#install.packages("ggplot2")
#install.packages("RColorBrewer")
library(ggplot2)
library(RColorBrewer)
导入数据,两分组数据,取自差异基因结果
data<-read.table("Scatter.txt",header = T,sep ="\t")
head(data)#数据包括两组各自的平均表达值,FC和P值. 若是其他数据需要做成类似的输入结构。
## Gene.Symbol IL_4 Kong FC P
## 1 HIST1H3G 1.86 2.02 -1.12 0.0134
## 2 TNFAIP8L1 4.42 4.43 -1.00 0.3770
## 3 OTOP2 2.70 2.64 1.05 0.6371
## 4 C17orf78 1.49 1.40 1.07 0.5306
## 5 CTAGE15 1.53 1.42 1.07 0.1518
## 6 F8A1 3.11 3.02 1.06 0.8245
data$regulation = as.factor(ifelse(data$P < 0.05 & abs(data$FC) > 1.5,
ifelse(data$FC > 1.5 ,'UP','DOWN'),'NOT')) #在原数据中添加regulation这一列,包含的是上下调情况,用于后期绘图的颜色映射
head(data)
## Gene.Symbol IL_4 Kong FC P regulation
## 1 HIST1H3G 1.86 2.02 -1.12 0.0134 NOT
## 2 TNFAIP8L1 4.42 4.43 -1.00 0.3770 NOT
## 3 OTOP2 2.70 2.64 1.05 0.6371 NOT
## 4 C17orf78 1.49 1.40 1.07 0.5306 NOT
## 5 CTAGE15 1.53 1.42 1.07 0.1518 NOT
## 6 F8A1 3.11 3.02 1.06 0.8245 NOT
绘制散点图
g=ggplot(data=data, aes(x=Kong, y=IL_4, color=regulation)) +
geom_point(alpha=0.8,size=1) + #以点图形式呈现
xlab("kong") + ylab("IL4") + #定义X轴和Y轴的名称
scale_colour_manual(values = c('blue','grey',"red")) + #设置具体颜色
theme_bw(base_size=15)+ #去除灰色背景并设置字体大小
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"))+ #去除背景格线
labs(title = "Scatter plot")+ #设置标题
theme(plot.title = element_text(size=15,hjust = 0.5)) #标题大小和位置
print(g)
绘制散点图(更加美观)
g1=ggplot(data=data, aes(x=Kong, y=IL_4)) +
geom_point(data=subset(data,abs(data$FC) <= 1.5),aes(size=abs(FC)),color="gray",alpha=0.1) +
geom_point(data=subset(data,data$P<0.05 & data$FC > 1.5),aes(size=abs(FC)),color="red",alpha=0.5) +
geom_point(data=subset(data,data$P<0.05 & data$FC < -1.5),aes(size=abs(FC)),color="darkgreen",alpha=0.5) +
scale_size(range = c(1,20))+
xlab("kong") + ylab("IL4") + #定义X轴和Y轴的名称
theme_bw(base_size=15)+ #去除灰色背景并设置字体大小
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"))+ #去除背景格线
labs(title = "Scatter plot")+ #设置标题
theme(plot.title = element_text(size=15,hjust = 0.5),legend.position='none') #标题大小和位置
print(g1)
保存为pdf格式
ggsave("Scatter.pdf", width = 15, height = 12, units = "cm") # ggsave可将图保存为多种格式。
更多内容可关注公共号“YJY技能修炼”~~~