手机版 下载桌面 设为首页

论文写作不要滥用条形图,箱线图加点图才是方向

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

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

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))

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

声明:本文转载仅出于学习和传播信息所需,并不意味着代表本站观点或证实其内容的真实性;其他网站或个人转载使用须保留本站所注“来源”,并自负相关法律责任;如作者不希望被转载或其他事宜,请及时联系我们!