美文网首页
NC图片复现:改造一下折线图提高可读性

NC图片复现:改造一下折线图提高可读性

作者: KS科研分享与服务 | 来源:发表于2022-12-06 15:57 被阅读0次

看NC文章发现一幅图,是一个折线图,折线图没什么好说的,很简单就可以实现。但是我突发奇想,觉得这样的折线图可读性不是很高,不同的线,不同的颜色,组别也别较多,根本分不清谁是谁,而且找对应颜色也要花费不少时间。所以我们改造下,直接把分组标注在线上!

图片

原文提供了表达数据,当然这篇文章还是巩固下数据的基本处理。原始数据和注释代码已上传群文件!!!
原文提供的数据是基因在不同事情的表达数据,而且每个组都有重复,我们首先要求每个时期每个组的平均值。


setwd('D:/KS项目/公众号文章/改造文献折线图')
df <- read.csv("df.csv", header = T, row.names = 1)
library(ggplot2)
library(reshape2)
df <- t(df)
df <- as.data.frame(df)
df$group <- c(rep('pES',3), rep('X6dSSEA4',2),rep('X8dRFP.GFP',2),
              rep('X10dRFP.GFP',2),rep('X12dRFP.GFP',2),rep('X14dRFP.GFP',2),
              rep('nES',3))

计算平均值并组成新的数据:


library(forcats)
df$group <- as.factor(df$group)
df$group <- fct_inorder(df$group)

mean_df <- as.data.frame(unique(df$group))
colnames(mean_df) <- 'group'
gene <- colnames(df[,-11])
for(i in 1:length(gene)){
  A <- aggregate(df[,gene[i]], by=list(group=df$group),mean)
  A <- A[,-1]
  A <- as.data.frame(A)
  colnames(A) <- gene[i]
  mean_df <- cbind(mean_df, A)
}

数据转化,ggplot作图:


mean_df_long <-melt(mean_df, id.vars = c("group"), 
                  measure.vars = 2:11,
                  variable.name = c('gene'),
                  value.name = 'value')

ggplot(mean_df_long, aes(x=group,y=value, 
                         group=gene, 
                         colour=as.factor(gene))) + 
  geom_line(lwd=1.5) +
  xlab("") +
  ylab("Expression")+
  theme_classic() + 
  theme(axis.text.x = element_text(colour = "black", size = 12,angle = 45,hjust = 1),
        axis.text.y = element_text(colour = "black", size = 10),
        axis.title.y = element_text(color = 'black', size = 12),
        axis.line = element_line(size = 1))
图片

改造的思路就是最后一列添加点,用geom_text加上label:

library(ggrepel)
data <- subset(mean_df_long, group=='nES')
ggplot(mean_df_long, aes(x=group,y=value, 
                         group=gene, 
                         colour=as.factor(gene))) + 
  geom_line(lwd=1.5) +
  geom_point(data=data, aes(x= group, y= value), cex=1)+
  xlab("") +
  ylab("Expression")+
  theme_classic() + 
  theme(axis.text.x = element_text(colour = "black", size = 12,angle = 45,hjust = 1),
        axis.text.y = element_text(colour = "black", size = 10),
        axis.title.y = element_text(color = 'black', size = 12),
        axis.line = element_line(size = 1))+ 
  theme(legend.position="none")+
  geom_text_repel(data=data, aes(label=gene),size=4, fontface="italic", 
                  size=3, segment.size=0.5, nudge_x=1, direction="y", hjust=0,nudge_y = 1)
图片

这样效果是不是好多了,自己看趋势,读者读起来更会更加方便。强烈建议SCI论文就该如此,很多时候光照legend对应的分组都得半天,尤其是颜色比较接近的时候,真的很不好。觉得分享有用的点个赞,分享一下再走呗!

相关文章

网友评论

      本文标题:NC图片复现:改造一下折线图提高可读性

      本文链接:https://www.haomeiwen.com/subject/eqzwfdtx.html