rm(list = ls())
library(ggplot2)
library(RColorBrewer)
library(ggrepel) 
df <- read.csv("D:\\X.csv",row.names = 1) 
df$threshold = factor(ifelse(df$pvalue  < 0.05 & abs(df$log2.foldchange) >= 1, ifelse(df$log2.foldchange >= 1 ,'Up','Down'),'N.S.'),levels=c('Up','Down','N.S.'))
df$gene <- df$lncRNA 
ggplot(df,aes(x=log2.foldchange,y= -log10(pvalue),color=threshold))+
  geom_point(data = df[df$pvalue<0.05&abs(df$log2.foldchange)>1,],size = 2)+ 
  geom_point(data = df[df$pvalue>0.05|abs(df$log2.foldchange)<1,],size = 1)+
  scale_color_manual(values=c("#4393C3","#00000033","#FC4E2A"))+ɫ
  geom_text_repel(
    data = df[df$pvalue<0.05&abs(df$log2.foldchange)>=1,],
    aes(label = gene),
    size = 2,
    color = "black",
    segment.color = "black", show.legend = FALSE )+
  ylab('-log10 (pvalue)')+
  xlab('log2 (FoldChange)')+
  geom_vline(xintercept=c(-1,1),lty=3,col="black",lwd=0.5) +
  geom_hline(yintercept = -log10(0.05),lty=3,col="black",lwd=0.5) +
  theme_classic(  # 
    base_line_size = 1 #
  )+
  theme(axis.title.x = element_text(size = 15, 
                                    color = "black",
                                    face = "bold"),
        axis.title.y = element_text(size = 15,
                                    color = "black",
                                    face = "bold", 
                                    vjust = 1.9, 
                                    hjust = 0.5, 
                                    angle = 90),
        legend.title = element_blank(),
        legend.text = element_text(color="black", 
                                   size = 10, 
                                   face = "bold"),
        axis.text.x = element_text(size = 13,  # ?޸?X??????????С??
                                   color = "black", # ??ɫ
                                   face = "bold", #  faceȡֵ??plain??ͨ??bold?Ӵ֣?italicб?壬bold.italicб???Ӵ?
                                   vjust = 0.5, # λ??
                                   hjust = 0.5, 
                                   angle = 0), #?Ƕ?
        axis.text.y = element_text(size = 13,  
                                   color = "black",
                                   face = "bold", 
                                   vjust = 0.5, 
                                   hjust = 0.5, 
                                   angle = 0) 
  )

