(翻)云(覆)雨图

栏目: 编程工具 · 发布时间: 6年前

内容简介:生物狗喜欢画barplot,但毕竟只有均值和标准误差信息量太低,万一有outliers呢?万一不是正态分布呢?所以就吐槽了又吐槽,但大家还是乐此不疲,因为大家都在用,因为很多人只会画barplot,所以产生各种反barplot运动,并呼吁大家使用然而事情是不断在进化的,我们的手段是要跟上潮流的,现在的潮流就是除了要有统计量,还要有原始数据,甚至于有统计推断,全集中一图中,揭开数据的红盖头,给大家呈现全方位无死角的面貌。所以现在流行的不单单是画boxplot,有以下几种方式是显得比较专业的:

生物狗喜欢画barplot,但毕竟只有均值和标准误差信息量太低,万一有outliers呢?万一不是正态分布呢?所以就吐槽了又吐槽,但大家还是乐此不疲,因为大家都在用,因为很多人只会画barplot,所以产生各种反barplot运动,并呼吁大家使用 boxplot ,boxplot有四分位数的统计量,可以反应outlier和数据的分布,比barplot高得多了。

然而事情是不断在进化的,我们的手段是要跟上潮流的,现在的潮流就是除了要有统计量,还要有原始数据,甚至于有统计推断,全集中一图中,揭开数据的红盖头,给大家呈现全方位无死角的面貌。

所以现在流行的不单单是画boxplot,有以下几种方式是显得比较专业的:

  • boxplot + raw data
  • violin plot + boxplot
  • violin plot + raw data
  • violin plot + boxplot + raw data

反正就是原始数据+统计量(boxplot)+统计推断(violin plot, 概率密度)的组合。然而violin画出来是对称的,也就是说信息冗余,就有人提出来,能不能画一半的violin,但其实一半也挺丑的,但大家脑洞足够大,把violin往右移一点,它就像一朵云彩,而raw data就像是雨滴,于是乎云雨图(raincloud)应运而生,一下子俘获大家的芳心,包括我。

就这一个可视化方式,有人专门写文章介绍,并且还用主流语言实现了, https://peerj.com/preprints/27137v1/

ggridges:一种波涛汹涌,哦不对,是山峰叠峦的可视化方式 》本身长得就像并个violin,这个包现在也支持raincloud,不过我还是喜欢单一的元素然后自己拼。

那么要实现这个图,最大的问题在于需要一半的violin,这个 David Robinson 首先从 ggplot2 中的 geom_violin 图层 修改得到 ,然后我发现一直没人打包在R包里,我为了方便讲课时候在课堂上演示,于是我就打了一个R包,叫 gglayerhttps://github.com/GuangchuangYu/gglayer , 顾名思义就是打包ggplot的图层的,我顺道把我 yyplot 中的两个图层也给移过去。

violin + boxplot + raw data

require(ggplot2)
ggplot(iris, aes(Species, Petal.Length, fill=Species))  +
    geom_violin(alpha=.5) +
    geom_boxplot(width=.1) +
    geom_jitter()

(翻)云(覆)雨图

violin + mean+-sd + raw data

统计量不一定要用boxplot来展示四分位数,你也可以是均值+-标准误差的方式,这样相当于你把barplot的信息也放进去了,所以说单纯barplot有多弱鸡。当然统计量也不限于此,有合适的都可以放进去。无非是拼图层,这也是图形语法的灵活所在,封装失去了自由组合的灵活性。

require(dplyr)
d <- group_by(iris, Species) %>%
    summarize(mean = mean(Petal.Length),
              sd = sd(Petal.Length))

ggplot(iris, aes(Species, Petal.Length, fill=Species))  +
    geom_violin(alpha=.5) +
    geom_jitter() +
    geom_pointrange(aes(y=mean, ymin=mean-sd, ymax=mean+sd, color=Species), data=d, size=2)

(翻)云(覆)雨图

云雨图1:加上均值和标准误差。

## devtools::install_github("GuangchuangYu/gglayer")
require(gglayer)

ggplot(iris, aes(Species, Petal.Length, fill=Species))  +
    geom_flat_violin(position=position_nudge(x=.2)) +
    geom_jitter(aes(color=Species), width=.15) +
    geom_pointrange(aes(y=mean, ymin=mean-sd, ymax=mean+sd),
                    data=d, size=1, position=position_nudge(x=.25)) +
    coord_flip() + theme_bw() +
    theme(legend.position="bottom")

(翻)云(覆)雨图

云雨图2:加上boxplot

ggplot(iris, aes(Species, Petal.Length, fill=Species))  +
    geom_flat_violin(position=position_nudge(x=.3)) +
    geom_jitter(aes(color=Species), width=.15) +
    geom_boxplot(width=.1, position=position_nudge(x=.22)) +
    coord_flip() + theme_bw() +
    theme(legend.position="bottom")

(翻)云(覆)雨图

云雨图3:用堆叠的点图当雨点

ggplot(iris, aes(Species, Petal.Length, fill=Species))  +
    geom_flat_violin(position=position_nudge(x=.2)) +
    geom_dotplot(binaxis="y", stackdir="down", dotsize=.35) +
    geom_boxplot(width=.1, position=position_nudge(x=.1)) +
    coord_flip() + theme_bw() +
    theme(legend.position="bottom")

(翻)云(覆)雨图


以上所述就是小编给大家介绍的《(翻)云(覆)雨图》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

热搜:搜索排名营销大揭秘

热搜:搜索排名营销大揭秘

【美】肖恩·布拉德利 / 中国人民大学出版社有限公司 / 2018-7-30 / CNY 55.00

首部大数据在我国政府管理场景中的应用实践案例读本,全面展示我国电子政务与数字化建设的成果,深度理解实施国家大数据战略的重要意义。 本书作者作为国内最早从事大数据应用研究的实践者之一,亲历了中国大数据的发展历程、主要事件、应用案例以及行业变化。 在本书中,作者将其所亲历的大数据发展历程进行了阐述,从大数据的基本概念、特点到实践解读,通俗易懂,给我们的实际工作提供了重要参考。作者将帮助读者......一起来看看 《热搜:搜索排名营销大揭秘》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具