正文

论文写作不要滥用条形图,箱线图加点图才是方向 -凯发k8国际首页登录

不要滥用条形图,箱线图加点图才是方向。除了分类数据计数,否则不准用条形图,要箱线图加点图。

举个例子来看看,先创建一个数据

df <- data.frame(
  "distribution" = c(rep("unimodal"500),
                     rep("bimodal"250),
                     rep("trimodal"600)),
  "value" = c(rnorm(50061),
              rnorm(2003.7), rnorm(5070.4),
              rnorm(20020.7), rnorm(3005.50.4), rnorm(10080.4))
)

这个数据有两列,是清洁数据,ggplot2的最爱。

接下来修改以下因子的水平,用于调整x轴的顺序,这在之前讲过很多次

df$distribution <- factor(df$distribution,
                          levels(df$distribution)[c(3, 1, 2)])

一般情况下,我们作图是这样的,用条形图来展示

library(ggplot2)
ggplot(df, aes(distribution, value)) 
  geom_col(aes(fill = distribution))


通常情况下,我们的文章中都喜欢这种图,但是这是有问题,这个图一开始是用于分类变量计数用的,并不适合连续型变量,因为他不能反应数据的分布。
所以,我们开始尝试用四分位箱线图来画

library(ggplot2)
ggplot(df, aes(distribution, value)) 
  geom_boxplot(aes(fill = distribution))

图有很大变化,此时我们还喜欢加上点图,这也是杂志社推荐的方式
library(ggplot2)
ggplot(df, aes(distribution, value)) 
  geom_boxplot(aes(fill = distribution)) 
  geom_jitter()

这时候,我们能够看出,即使是一组,组内的数据也明显有分布特征,比如中间那个就分成了3群。
这个时候,小提琴图可以反应数据的分布特征
library(ggplot2)
ggplot(df, aes(distribution, value)) 
  geom_violin(aes(fill = distribution))

我们也可以叠加点图呈现更多的信息
library(ggplot2)
ggplot(df, aes(distribution, value)) 
  geom_violin(aes(fill = distribution)) 
  geom_jitter()

这个图,在单细胞分析里面很常见,但是还是瑕疵,因为那些点不守规矩,ggforce里面有个geom_sina图层可以把点限定在小提琴中,
library(ggplot2)
library(ggforce)
ggplot(df, aes(distribution, value)) 
  geom_violin(aes(fill = distribution)) 
  geom_sina()

这样明显好看很多,而且我觉得以后单细胞那边的图,大概率都得改成这样。
但是,还是有问题,因为点图已经能够展示数据的分布了,那么小提琴就没有了作用,所以可以去掉小提琴图层
library(ggplot2)
library(ggforce)
ggplot(df, aes(distribution, value)) 
  geom_sina(aes(color = distribution))

这个图层简洁明了,现在看看,是不是条形图的信息严重缺失,甚至有时候会起到误导的作用。
爱科学

上一篇:sci论文的通讯作者需要做什么?

下一篇:从文献实例角度讲解sci论文写作注意要点

登录注册
欢迎内容投稿或举报!e-mail: ikx@ikx.cn
凯发天生赢家一触即发官网 copyright © 爱科学 iikx.com "));
网站地图