美文网首页
复现Nature genetic图表:ggplot绘制点线图

复现Nature genetic图表:ggplot绘制点线图

作者: KS科研分享与服务 | 来源:发表于2023-02-06 13:52 被阅读0次

    近期在看一篇Nature genetics关于自闭症的研究文章的时候,看到了这样的可视化图表,是一种点线图。

    图片 图片

    文章提供了数据,一开始我想到的绘制方法是画出线图,线的上下就是数据最大值和最小值,最后加上平均值的点图就完成了。之前我们做误差线的时候使用过误差线绘制的函数,就可以解决线的绘制。

    
    setwd("D:/KS项目/公众号文章/ggplot点线图")
    df <- read.csv("点线图.csv", header = T)
    #做这个图其实需要三个要素就足够了,一个是点的平均值
    #另外就是线的最大值和最小值
    
    #分别计算下
    df$mean <- rowMeans(df[,3:6])
    df$Max <- apply(df[,3:6], 1, function(x){max(x)})
    df$Min <- apply(df[,3:6], 1, function(x){min(x)})
    
    
    library(ggplot2)
    library(forcats)
    df$Phenotype <- as.factor(df$Phenotype)
    df$Phenotype <- fct_inorder(df$Phenotype)
    
    #设置下坐标轴文字颜色
    col <- c(rep("black",13),rep("red",6))
    

    作图即可。

    ggplot(data=df,aes(x=Phenotype,y=mean))+
      geom_errorbar(aes(ymin=Min,ymax=Max),width=0, color='#00798C')+
      geom_point(size=5, color='#00798C')+
      theme_classic()+
      theme(axis.text.x = element_text(colour = 'black',size = 10,angle=45,vjust = 1,hjust = 1, color = col),
            axis.text.y = element_text(colour = 'black',size = 10),
            axis.title.x = element_blank(),
            axis.title.y = element_text(colour = 'black',size = 12))+
      ylab("SRC")+
      geom_hline(yintercept =0,linetype=1,size=0.5)
    
    图片

    绘制完成,效果可以,后来百度发现,还有很多种做法,这里提供两种。

    
    #method2
    ggplot(data=df,aes(x=Phenotype,y=mean))+
      geom_pointrange(aes(ymin=Min,ymax=Max),size=1)
    
    图片
    #method3
    ggplot(data=df,aes(x=Phenotype,y=mean))+
      geom_linerange(aes(ymin=Min,ymax=Max),size=1)+
      geom_point(size=5)
    
    图片

    效果是一样的。觉得分享有用的点个赞、分享下再走呗!

    相关文章

      网友评论

          本文标题:复现Nature genetic图表:ggplot绘制点线图

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