R绘图|ggplot2散点图的绘制

在高通量文章中,经常会出现散点图这种结果展示形式,如下图,用来展示两组数据之间的表达分布,体现两组数据整体的差异分布情况。X轴和Y轴分别代表两组的表达值,蓝色代表两组无差异的基因,红色代表上调基因(相对于WT 组而言),绿色代表下调基因(相对于WT组而言)。

Figure1

image
image

今天呢,来简单演示下散点图的绘制方法,有数据的小伙伴可以试试!

首先清除环境,安装并加载所需要的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)
image

绘制散点图(更加美观)

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)
image

保存为pdf格式

ggsave("Scatter.pdf", width = 15, height = 12, units = "cm") # ggsave可将图保存为多种格式。

更多内容可关注公共号“YJY技能修炼”~~~

你可能感兴趣的:(R绘图|ggplot2散点图的绘制)