非常有意思的数据可视化案例 ,原文提出的问题是 学术论文中的作者数量有逐年增加的趋势 ;于是利用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)
期刊分别是
table(df$journal)
还是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
这里新学到一个函数gl()
,生成因子数据,比如
gl(2, 8, labels = c("Control", "Treat"))
参数的意思是
- 两种因子,每种8个,总共重复一次,因子的标签是 Control 和 Treat
之前我实现这个都是用rep()函数
再来一个例子
gl(2, 1, 20)
两个因子,每种一个,重复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)
好了,今天的内容就到这里了
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!