ggplot2箱式图两两比较_R绘图 第四篇:绘制箱图(ggplot2)
箱线图通过绘制观测数据的五数总括,即最小值、下四分位数、中位数、上四分位数以及最大值,描述了变量值的分布情况。箱线图能够显示出离群点(outlier),离群点也叫做异常值,通过箱线图能够很容易识别出数据中的异常值。
箱线图提供了识别异常值的一个标准:
异常值通常被定义为小于 QL- l.5 IQR 或者 大于 Qu+ 1.5 IQR的值,QL称为下四分位数, Qu称为上四分位数,IQR称为四分位数间距,是Qu上四分位数和QL下四分位数之差,其间包括了全部观察值的一半。
箱线图的各个组成部分的名称及其位置如下图所示:
箱线图可以直观地看出数据集的以下重要性值:
中心位置:中位数所在的位置就是数据集的中心;
散布程度:箱线图分为多个区间,区间较短时,表示落在该区间的点较集中;
对称性:如果中位数位于箱子的中间位置,那么数据分布较为对称;如果极值离中位数的距离较大,那么表示数据分布倾斜
一,绘制箱线图
绘制箱线图比较简单,通常情况下,我们使用ggplot和geom_boxplot绘制箱线图,在下面的小节中,我们使用ToothGrowth作为示例数据:
ToothGrowth$dose
head(ToothGrowth)
len supp dose1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
1,绘制基本的箱线图
使用geom_boxplot绘制基本的箱线图:
library(ggplot2)
ggplot(ToothGrowth, aes(x=dose, y=len)) +geom_boxplot()
2,设置离群点(outlier)
geom_boxplot函数中有outlier开头的多个参数,用于修改离群点的属性:
outlier.colour:离群点的颜色
outlier.fill:离群点的填充色
outlier.shape:离群点的形状
outlier.size:离群点的大小
outlier.alpha:离群点的透明度
示例代码如下:
ggplot(ToothGrowth, aes(x=dose, y=len)) +geom_boxplot(outlier.colour="red", outlier.shape=8, outlier.size=4)
3,设置箱线图的颜色
通过aes(color=)函数可以为每个箱线图设置一个颜色,而箱线图的划分是通过 aes(color=)函数的color参数来划分的,划分箱线图之后,scale_color_*()函数才会起作用,该函数用于为每个箱线图设置前景色和填充色,颜色是自定义的:
scale_fill_manual() #forbox plot, bar plot, violin plot, etc
scale_color_manual() #for lines and points
以下代码设置箱线图的前景色:
ggplot(ToothGrowth, aes(x=dose, y=len,color=dose)) +geom_boxplot()+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
4,设置Legend 的位置
说明(Legend)是对箱线图的解释性描述,默认的位置是在画布的右侧中间位置,可以通过theme()函数修改Legend的位置,lengend.position的有效值是top、right、left、bottom和none,默认值是right:
p
p+ theme(legend.position="top")
p+ theme(legend.position="bottom")
p+ theme(legend.position="none") # Remove legend
5,设置箱线图的标题和坐标轴的名称
通过labs设置箱线图的标题和坐标的名称,参数title用于设置标题,x和y用于设置x轴和y轴的标签:
ggplot(ToothGrowth, aes(x=dose, y=len,color=dose)) +geom_boxplot()+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+theme(legend.position="right")+labs(title="Plot of length per dose",x="Dose (mg)", y = "Length")
6,绘制箱线图的散点
通过geom_point函数,向箱线图中添加点,geom_jitter()函数是geom_point(position = "jitter")的包装,binaxis="y"是指沿着y轴进行分箱:
# Box plot with dot plot
p+ geom_dotplot(binaxis='y', stackdir='center', dotsize=1)
# Box plot with jittered points
#0.2 : degree of jitter inx direction
p+ geom_jitter(shape=16, position=position_jitter(0.2))
7,旋转箱线图
函数coord_flip()用于翻转笛卡尔坐标系,使水平变为垂直,垂直变为水平,主要用于把显示y条件x的geoms和统计信息转换为x条件y。
p
二,异常值检测
绘制散点图,并标记异常值:
ggplot(ToothGrowth, aes(x=dose, y=len,color=dose)) +geom_boxplot(outlier.colour="red", outlier.shape=7,outlier.size=4)+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+theme(legend.position="right")+labs(title="Plot of length per dose",x="Dose (mg)", y = "Length")+geom_dotplot(binaxis='y', stackdir='center', stackratio=1.5, dotsize=1.2)
当箱线图中的异常值过多时,绘制的图中,箱子被压成一条线,无法观察到数据的分布,这就需要移除异常值,只保留适量的离群点,常见的做法是改变ylim的范围,代码是:
# compute lower and upper whiskers
ylim1= boxplot.stats(df$y)$stats[c(1, 5)]
# scale y limits based on ylim1
ggplot()+ gemo_box() + coord_cartesian(ylim = ylim1*1.05)
三,箱图的排序
对箱图的排序,实际上,是对箱图的x轴因子进行排序,而因子的顺序是由因子水平决定的。在对箱图进行排序时,可以按照数据的均值对x轴因子水平进行排序,重置数据框x轴的因子水平,就可以实现箱图的排序:
x_order %group_by(x_factor)%>%summarize(mean_y=mean(y_value))%>%ungroup()%>%arrange(desc(mean_y))%>%
select(x_factor);
df$x_factor
参考文档:
ggplot2箱式图两两比较_R绘图 第四篇:绘制箱图(ggplot2)相关推荐
- R语言绘制箱图(Base R and ggplot2)
R语言绘制箱图 目录 R语言绘制箱图 R原生绘制箱图 ggplot2绘制箱图 箱图boxplot(有时称为Box-and-Whitker plot)是一种显示
- plt.boxplot()函数绘制箱图、常用方法及含义详解
1. 箱图含义 箱图是一中用于统计数据分布的统计图,也可以粗略地看出数据是否具有对称性,分布的分散程度等信息.箱图中的信息含义如下: 最下方的横线表示最小值 最上方的横线表示最大值 黑色空心圆圈表示异 ...
- setitimer 创建两个定时器_JavaScript第二十四篇 高级定时器(下)
数组分块 所谓数组分块,就是当你发现某个循环占用了大量时间,同时对于上述两个问题,你的回答都是"否",那么你就可以使用定时器分割这个循环. 思路是结合定时器进行递归调用定时器 基本 ...
- 如何用python绘图、柱形图、线形图等_python使用Plotly绘图工具绘制散点图、线形图...
今天在研究Plotly绘制散点图的方法,供大家参考,具体内容如下 使用Python3.6 + Plotly Plotly版本2.0.0 在开始之前先说说,还需要安装库Numpy,安装方法在我的另一篇博 ...
- R绘图 第十篇:绘制散点图(高级)
散点图用于描述两个连续性变量间的关系,三个变量之间的关系可以通过3D图形或气泡来展示,多个变量之间的两两关系可以通过散点图矩阵来展示. 一,添加了最佳拟合曲线的散点图 使用基础函数plot(x,y)来 ...
- 钉钉日志范文100篇_看图写话范文328:暑假旅行(4篇)
范文01:暑假旅行400字 暑假,我们一家去了嘉兴游玩.嘉兴南湖因红船而成为革命圣地.老爸对于中国近代革命史可谓是如数家珍:"星星之火可以燎原!你们看,当初共产党就是在这么小的一艘船里点燃了 ...
- R语言中使用boxplot函数绘制箱线图
(源自百度,便于查看故复制于此,若有冒犯会删除) 箱线图简介 箱线图又称箱形图或盒须图,该图是由5个特征值绘制而成的图形. 5个特征值是变量的最大值.最小值.中位数.第1四分位数和第3四分位数. 连接 ...
- R语言boxplot绘制箱线图
Usage # x 为向量,dataframe,以及matirx boxplot(x, ...) # x 为formula boxplot(formula, data = NULL, ..., sub ...
- ggplot2箱式图两两比较_R语言ggplot2箱线图绘图总结
主要从如何看图.用图与作图三个方面来对箱线图进行理解和总结. 1.看图 箱线图概述图1 箱线图概述图2 如图所示,箱线图是将一组数据按照大小顺序排列后进行绘制的,包含6个数据节点,分别表示出数据的上边 ...
最新文章
- python运行mcmc为何老出错_python – 使用pyMCMC / pyMC对数据/观察结果设置非线性函数...
- Oracle创建用户、表空间、导入导出、...命令
- 机械制造技术学习笔记(七)
- libncurses.so.5 is needed by unixODBC_值得一看的全息网游 ——生存游戏by那时烟花
- html 的c标签库,jstl C标准标签库Ⅰ
- 前端学习(2355):uni里面的样式学习
- testufo测试刷新率测试_上手体验微星电竞显示器PAG301CR:200Hz高刷新率只是它的小亮点...
- 02Framelayout:帧布局
- 啊哈c语言逻辑的挑战课后题答案,啊哈C语言 逻辑的挑战(修订版)pdf
- 汇编语言程序设计技巧详解(附例题)
- FireMonkey v1.1的WinSoft WinRT-10.3-SEO-狼术
- JDK1.8HashMap底层实现原理
- GNOME-Shell-Extensions开发经验(一)Hello,world!
- 2020年408真题_2020年港澳台联考真题——英语!
- linux ntfs格式u盘实现与挂载
- HTC M7日文版HTL22刷机包 毒蛇2.5.0 ART NFC Sense6.0
- 软件测试计划模板--云闪付平台
- 图文对齐居中的几种方式
- python excel处理成绩_用Python操作Excel,实现班级成绩的统计
- 南大庄建军计算机学院讲座,2015年全国大学生电子设计竞赛工作经验交流会汇报_南京大学庄建军.ppt...
热门文章
- ad域 禁用账号_IST-AD域信息同步平台来袭
- easyui java管理系统_EasyUI 后台管理系统
- Java @Transient 注解使用
- Git实战(二)原理
- 科普:UTF-8 GBK UTF8 GB2312 之间的区别和关系
- java写入文件的几种方法分享
- Sphinx+MySQL5.1x+SphinxSE+mmseg
- [linux]Ubuntu12.1下打开terminal的方式
- Private Inheritance(what, where)
- Flume实战监听网络端口