转自:  biobabble

生物狗喜欢画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包,叫gglayer,https://github.com/GuangchuangYu/gglayer, 顾名思义就是打包ggplot的图层的,我顺道把我yyplot中的两个图层也给移过去。

130岁了,祝你生快

画个小圈圈

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 %

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

往期精彩

用户数据注释进化树

reverse time scale

给硕博考生的一封信

轮到相思没处辞,眉间露一丝

没有金刚钻,揽不了瓷器活!

treeio: Phylogenetic data integration

ggplot扩展学习笔记--逐行解析Y叔的"geom_ord_ellipse.R"

五彩进化树与热图更配-ggtree美颜进化树(宏基因组扩增子)

小提琴统计图_(翻)云(覆)雨图-小提琴图,密度图、箱线图组合相关推荐

  1. 【数据处理】python matplotlib 画箱线图;箱线图介绍;如何画箱线图

    一.箱线图介绍 假设一组数据有n个数,将它们从小到大排列,分为四等分.位于第25%(n+1)位置的数字是第一四分位数Q1.位于第50%(n+1)位置的数字是第二四分位数Q2,也是中位数.位于第75%( ...

  2. ggplot2箱式图两两比较_ggplot2 - 箱线图(Box - plot)

    简介 箱线图,顾明思义,是形状像箱子并展示一组或多组数据分布的统计图,被认为是一个优于柱形图的数据可视化方案,文章中指出了很多箱线图的优点. 在ggplot2 中做箱线图的图形变换是geom_boxp ...

  3. python panda 库箱线图_Python数据可视化:箱线图多种库画法

    概念 箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q ...

  4. python画厢式图_Python数据可视化:箱线图多种库画法

    概念 箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q ...

  5. r语言echarts画箱线图_echarts学习笔记之箱线图的分析与绘制详解

    一.箱线图 box-plot 箱线图(boxplot)也称箱须图(box-whisker plot),它是用一组数据中的最小值.第一四分位数.中位数.第三四分位数和最大值来反映数据分布的中心位置和散布 ...

  6. matlab笔记——绘图篇——折线图+散点图+饼图+直方图+柱状图+箱线图+三维图+地图

    今天早上刚讲完课,一个小时的培训准备起来也很不容易呐,但是讲完还是挺开心的啦. 现在来把绘图篇更新一下. 这篇主要就讲matlab数据可视化,介绍一下matlab基本图形绘制. 绘图篇 数据导入 给大 ...

  7. python箱形图颜色_python绘图:箱线图

    箱线图 boxplot函数的参数解读 绘图之前,我们先来讲解一下matplotlib包中boxplot函数的参数含义及使用方法: plt.boxplot(x, notch=None, sym=None ...

  8. 小提琴统计图_小提琴图解读 统计学

    小提琴图现在比较流行,在文章里很常见. [小提琴图]其实是[箱线图]与[核密度图]的结合,[箱线图]展示了分位数的位置,[小提琴图]则展示了任意位置的密度,通过[小提琴图]可以知道哪些位置的密度较高. ...

  9. 小提琴统计图_小提琴图解读 - 统计学

    小提琴图现在比较流行,在文章里很常见. [小提琴图]其实是[箱线图]与[核密度图]的结合,[箱线图]展示了分位数的位置,[小提琴图]则展示了任意位置的密度,通过[小提琴图]可以知道哪些位置的密度较高. ...

  10. 小提琴统计图_R语言数据可视化系列(4)箱线图和小提琴图(附详细代码)

    本文希望教会大家运用R语言绘制箱线图和小提琴图.小提琴图能同时查看数据的分布和描述性统计,是一种非常实用的可视化图形. 箱线图/盒须图 绘制连续型变量常用的五个描述性统计量,从下到上依次是:最小值,下 ...

最新文章

  1. 黑马在线教育项目---15-16、datatables插件
  2. 经典C语言程序100例之十二
  3. python发红包问题_一个关于红包的问题引发的python算法初体验
  4. solr 3.5 配置及应用(二)
  5. PHP在线二维码生成源码
  6. 阿里云前端周刊 - 第 33 期
  7. Exchange 2013 MAPI over HTTP
  8. mysql left right 一张图解
  9. linux 查看数据库和表
  10. web项目设计文档_web项目前后端分离模式下的权限设计方案
  11. 深入浅出 卡尔曼滤波
  12. 费马小定理的两个证明
  13. 存储组件之MFS详解
  14. Alpaca 羊驼API的使用
  15. Android studio 的SDK默认安装路径找不到AppData文件
  16. 冯诺依曼体系结构计算机
  17. windows2003中未分页内存泄漏导致服务器不稳定的解决方法
  18. 高校制作VR全景费用了解一下?
  19. java abstract的用法
  20. 期末Django项目实训报告

热门文章

  1. Sublime 使用笔记(九):汉字乱码问题的解决方法
  2. C#批量发送短信操作
  3. 森松尼N-J60双模机械键盘按键操作说明
  4. 腾讯云服务器无限流量,腾讯云服务器有流量限制吗,您看仔细了
  5. 51单片机:独立按键
  6. 爆款公众号:如何打造爆款公众号文章?公众号文章如何突破10w+?
  7. excel制作项目甘特图
  8. html修改字体大小到10像素,ps怎么修改字体大小
  9. Flutter集成与打包iOS应用
  10. linux gpio管脚功能配置API