美文网首页生物统计R语言做图ggplot2绘图
R语言ggplot2绘制经验累积分布(empirical cum

R语言ggplot2绘制经验累积分布(empirical cum

作者: 小明的数据分析笔记本 | 来源:发表于2021-04-18 21:36 被阅读0次

    非常有意思的数据可视化案例 ,原文提出的问题是 学术论文中的作者数量有逐年增加的趋势 ;于是利用R语言里的 rplos 包抓取了 Plos 系列的6本期刊的2006年至2013年的每篇论文里的作者数量 进行可视化展示

    原文链接是
    https://benjaminlmoore.wordpress.com/2014/04/06/author-inflation-in-academic-literature/

    完整的代码链接

    https://github.com/blmoore/blogR

    原始代码中抓取数据的部分好像不能用了,我稍微改动了一下,选取了2006年到2020年的数据,获取数据的代码这里就不放了,如果需要本文的示例数据可以知己在文末留言

    数据已经存储到了文件里 首先是读取数据
    library(readr)
    df<-read_tsv("author_number.tsv")
    head(df)
    
    image.png
    期刊分别是
    table(df$journal)
    
    image.png

    还是Plos系列学术论文2006-2020年间作者数量的数据,这次用 经验累积分布曲线来展示数据。这个图我还是第一次听说。借助ggplot2中的stat_ecdf()函数实现

    我们先来看一下帮助文档中的例子

    df_1 <- data.frame(
      x = c(rnorm(100, 0, 3), rnorm(100, 0, 10)),
      g = gl(2, 100)
    )
    p1<-ggplot(df_1, aes(x)) + stat_ecdf(geom = "step")
    
    # Don't go to positive/negative infinity
    p2<-ggplot(df_1, aes(x)) + stat_ecdf(geom = "step", pad = FALSE)
    
    # Multiple ECDFs
    p3<-ggplot(df_1, aes(x, colour = g)) + stat_ecdf()
    
    
    library(patchwork)
    
    p1+p2+p3
    
    image.png

    这里新学到一个函数gl(),生成因子数据,比如

    gl(2, 8, labels = c("Control", "Treat"))
    
    image.png

    参数的意思是

    • 两种因子,每种8个,总共重复一次,因子的标签是 Control 和 Treat

    之前我实现这个都是用rep()函数

    再来一个例子

    gl(2, 1, 20)
    
    image.png

    两个因子,每种一个,重复20次

    接下来用作者数据试试
    ggplot(df, aes(x=auth_num, col=journal)) + 
      stat_ecdf(geom="smooth", se=F, size=1.2) + 
      theme_bw() +
      scale_x_log10(breaks=c(1:5, seq(10, 50, by=10),
                             100, 200, 300,400,500)) +
      theme(legend.position=c(.75,.33),
            panel.grid = element_blank()) +
      labs(x="Number of authors per paper", 
           y="ECDF",
           col="") + 
      coord_cartesian(xlim=c(1,500)) +
      scale_color_brewer(type="qual", palette=6)
    
    image.png

    好了,今天的内容就到这里了

    欢迎大家关注我的公众号

    小明的数据分析笔记本

    小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

    相关文章

      网友评论

        本文标题:R语言ggplot2绘制经验累积分布(empirical cum

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