淘先锋技术网

首页 1 2 3 4 5 6 7

近期有小伙伴发来一个文章(Identification and Validation of the lncRNA MYOSLID as a Regulating Factor of Necroptosis and Immune Cell Infiltration in Colorectal Cancer following Necroptosis-Related LncRNA Model Establishment)中的图表,想让复现一下,其实就是柱状图,之前我们做过很多,综合一下还是可以复现。这里我们大概复现一下!****示例数据及注释代码已上传群文件****。****

图片

1、数据整理


df <- read.csv('df.csv', header = T)
df <- cbind(df[,1:7], df[,8:14]* -1) 

library(tidyr)
data <-gather(df, gene, value, 1:14)
data$group <- ''
data$group <- ifelse(data$value >0, "Up_regulation", "Down_regulation")

2、做柱状图

ggplot(data, aes(fill=group, y=value, x=reorder(gene,-value)))+
  geom_bar(position=position_dodge(),
           stat="summary",
           width=0.9,
           size=1)+ 
  stat_summary(fun.data = 'mean_se', 
               geom = "errorbar", 
               colour = "black",
               width = 0.2,
               position=position_dodge(0.7))+
  scale_fill_manual(values = c('#F69CA4','#EE2024'))+
  theme(axis.text.x = element_blank())+ 
  theme(axis.text.y = element_text(size = 12, color="black"),
        axis.line.y = element_line(color = 'black'),
        axis.title.y = element_text(size = 14, color="black"))+
  theme(axis.title.x = element_blank(),
        axis.ticks.x = element_blank())+
  theme(panel.grid = element_blank(),
        panel.background = element_blank())+
  theme(legend.position = 'none')+
  geom_hline(aes(yintercept=0),linetype=1,cex=1,color='black')+
  labs(title = "", y="Relative expression", x = "")+
  annotate(geom = 'text', label="Up_regulation", x=3.5, y=-15,size=4)+
  annotate("segment", x = 0.5, xend = 7.5, y = -10, yend = -10, color='black')+ 
  annotate(geom = 'text', label="Down_regulation", x=11.5, y=15,size=4)+
  annotate("segment", x = 8.5, xend = 13.5, y = 10, yend = 10, color='black')

图片

3、添加散点

#当然了,如果你乐意,还可以加上散点,让样本量更加清晰,这也是很多杂志的要求
ggplot(data, aes(fill=group, y=value, x=reorder(gene,-value)))+
  geom_bar(position=position_dodge(),
           stat="summary",
           width=0.9,
           size=1)+ 
  stat_summary(fun.data = 'mean_se', 
               geom = "errorbar", 
               colour = "black",
               width = 0.2,
               position=position_dodge(0.7))+
  scale_fill_manual(values = c('#F69CA4','#EE2024'))+
  theme(axis.text.x = element_blank())+ 
  theme(axis.text.y = element_text(size = 12, color="black"),
        axis.line.y = element_line(color = 'black'),
        axis.title.y = element_text(size = 14, color="black"))+
  theme(axis.title.x = element_blank(),
        axis.ticks.x = element_blank())+
  theme(panel.grid = element_blank(),
        panel.background = element_blank())+
  theme(legend.position = 'none')+
  geom_hline(aes(yintercept=0),linetype=1,cex=1,color='black')+
  labs(title = "", y="Relative expression", x = "")+
  geom_jitter(data = data, aes(y = value,x=reorder(gene,-value)),
              size = 3, shape = 16,
              color="grey60",
              stroke = 0.15, show.legend = FALSE, 
              position = position_jitterdodge(jitter.height=0.5,
                                              jitter.width = 0.1,
                                              dodge.width = 0.8))

图片

效果挺好的,至于文章中的中间有一个灰色的部分,添加分组就可以实现。觉得分享有用的点个赞、分享一下再走呗!