R语言利用ggplot2绘制QQ图和箱线图详解

目录
  • 绘制qq图
    • 函数介绍
    • 例子
  • 绘制boxplot
    • 函数介绍
    • 例子
    • 利用分位点绘制箱线图
  • 将QQ图和箱线图进行融合
    • 函数介绍
    • 参数介绍
    • 注意事项
    • 例子

绘制qq图

在ggplot2中绘制qq图需要两步,geom_qq()将绘制样本分位点,geom_qq_line()将绘制标准正态线

函数介绍

geom_qq()

geom_qq(
  mapping = NULL,
  data = NULL,
  geom = "point",
  position = "identity",
  ...,
  distribution = stats::qnorm,
  dparams = list(),
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)
geom_qq_line(
  mapping = NULL,
  data = NULL,
  geom = "path",
  position = "identity",
  ...,
  distribution = stats::qnorm,
  dparams = list(),
  line.p = c(0.25, 0.75),
  fullrange = FALSE,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

参数介绍

**aes()**中的映射参数必须包含sample,可选参数有group,x,y distribution

Distribution function to use, if x not specified
dparams Additional parameters passed on to distribution function.
line.p Vector of quantiles to use when fitting the Q-Q line, defaults defaults to c(.25, .75).
fullrange Should the q-q line span the full range of the plot, or just the data

注意事项

**aes()**中的映射参数必须包含sample

例子

Using to explore the distribution of a variable

ggplot(mtcars, aes(sample = mpg)) +
  stat_qq() +
  stat_qq_line()
ggplot(mtcars, aes(sample = mpg, colour = factor(cyl))) +
  stat_qq() +
  stat_qq_line()

绘制boxplot

函数介绍

geom_boxplot(
  mapping = NULL,
  data = NULL,
  stat = "boxplot",
  position = "dodge2",
  ...,
  outlier.colour = NULL,
  outlier.color = NULL,
  outlier.fill = NULL,
  outlier.shape = 19,
  outlier.size = 1.5,
  outlier.stroke = 0.5,
  outlier.alpha = NULL,
  notch = FALSE,
  notchwidth = 0.5,
  varwidth = FALSE,
  na.rm = FALSE,
  orientation = NA,
  show.legend = NA,
  inherit.aes = TRUE
)

参数介绍

aes()可接收的参数有:

  • x or y, 利用x将会是横向箱线图,y的是纵向
  • lower or xlower
  • upper or xupper
  • middle or xmiddle
  • ymin or xmin
  • ymax or xmax
  • alpha
  • colour
  • fill
  • group
  • linetype
  • shape
  • size
  • weight

notch If FALSE (default) make a standard box plot. If TRUE, make a notched box plot. Notches are used to compare groups; if the notches
of two boxes do not overlap, this suggests that the medians are
significantly different.
notchwidth For a notched box plot, width of the notch relative to the body (defaults to notchwidth = 0.5).
varwidth If FALSE (default) make a standard box plot. If TRUE, boxes are drawn with widths proportional to the square-roots of the
number of observations in the groups (possibly weighted, using the
weight aesthetic).

例子

p <- ggplot(mpg, aes(x=class, y=hwy))
p + geom_boxplot()

ggplot(mpg, aes(x=hwy, y=class)) + geom_boxplot()

p <- ggplot(mpg, aes(x=class, y=hwy))
p + geom_boxplot(notch = TRUE,varwidth = TRUE,fill = "white", colour = "#3366FF")

ggplot(diamonds, aes(carat, price)) +
  geom_boxplot(aes(group = cut_width(carat, 0.25)))

p <- ggplot(mpg, aes(x=class, y=hwy))
p + geom_boxplot(outlier.shape = NA) + geom_jitter(width = 0.2)

利用分位点绘制箱线图

y <- rnorm(100)
df <- data.frame(
  x = 1,
  y0 = min(y),
  y25 = quantile(y, 0.25),
  y50 = median(y),
  y75 = quantile(y, 0.75),
  y100 = max(y)
)
ggplot(df, aes(x)) +
  geom_boxplot(
    aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),
    stat = "identity"
  )

将QQ图和箱线图进行融合

函数介绍

该函数是来自于qqboxplot包,因此使用前需要安装

geom_qqboxplot(
  mapping = NULL,
  data = NULL,
  stat = "qqboxplot",
  position = "dodge2",
  ...,
  outlier.colour = NULL,
  outlier.color = NULL,
  outlier.fill = NULL,
  outlier.shape = 19,
  outlier.size = 1.5,
  outlier.stroke = 0.5,
  outlier.alpha = NULL,
  notch = FALSE,
  notchwidth = 0.5,
  varwidth = FALSE,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

参数介绍

大部分参数和geom_qq()和geom_boxplot()中的参数含义相同

reference_dist 表示参数比较的标准分布名称,如果有参数需要有dparams

compdata 用于比较的标准样本数据,是个向量

注意事项

aes()函数中的y不可缺

例子

library(dplyr)
library(ggplot2)
library(qqboxplot)

simulated_data=tibble(y=c(rnorm(1000, mean=2), rt(1000, 16), rt(500, 4),
                          rt(1000, 8), rt(1000, 32)),
                      group=c(rep("normal, mean=2", 1000),
                              rep("t distribution, df=16", 1000),
                              rep("t distribution, df=4", 500),
                              rep("t distribution, df=8", 1000),
                              rep("t distribution, df=32", 1000)))
p <- ggplot2::ggplot(simulated_data, ggplot2::aes(factor(group,
                                                         levels=c("normal, mean=2", "t distribution, df=32", "t distribution, df=16",
                                                                  "t distribution, df=8", "t distribution, df=4")), y=y))
p + geom_qqboxplot()
p + geom_qqboxplot(reference_dist = "norm")

p + geom_qqboxplot(compdata = comparison_dataset)

以上就是R语言利用ggplot2绘制QQ图和箱线图详解的详细内容,更多关于R语言绘制QQ图 箱线图的资料请关注我们其它相关文章!

(0)

相关推荐

  • R语言ggplot2之图例的设置

    引言 图例的设置包括移除图例.改变图例的位置.改变标签的顺序.改变图例的标题等. 移除图例 有时候你想移除图例,使用 guides(). library(ggplot2) p <- ggplot(PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() p + guides(fill=FALSE) 改变图例的位置 我们可以用theme(legend.position=-)将图例移到图表的上方.下方.左边和右边. p <-

  • R语言学习ggplot2绘制统计图形包全面详解

    目录 一.序 二.ggplot2是什么? 三.ggplot2能画出什么样的图? 四.组装机器 五.设计图纸 六.机器的零件 1. 零件--散点图 1) 变换颜色 2) 拟合曲线 3) 变换大小 4) 修改透明度 5) 分层 6) 改中文 2. 零件--直方图与条形图 1) 直方图 2) 润色 3) 条形图 3. 零件--饼图 4. 零件--箱线图 5. 零件--小提琴图 6. 零件打磨 7. 超级变变变 8. 其他常用零件 七.实践出真知 八.学习资源 九.参考资料 一.序 作为一枚统计专业的学

  • R语言可视化ggplot2绘制24小时动态血糖图

    目录 数据格式 创建等距时间序列的方法(分钟) 画图代码 数据格式 sample=read.csv("sample.csv",header = T,stringsAsFactors = F)head(sample) 创建等距时间序列的方法(分钟) time=strptime("00:00:00","%H:%M:%S")+300*0:287 #没有填日期的时候,默认日期为今天 画图代码 #time首先要转换成 POSIXct 格式, 下面的brea

  • R语言 使用ggplot2绘制好看的分组散点图

    我们以iris数据集为例,该数据集包括花萼的长度和宽度,花瓣的长度和宽度,以及物种,如下图: 本文我们要绘制不同物种下花萼的长度和宽度的分布情况,以及二者之间的相关性关系. 1. 首先载入ggplot2包, library(ggplot2) 2. 然后进行ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())绘制,在绘制中第一个参数是数据,第二个参数是数据映射,是绘制的全局变量,其中包含的参数有x,y,col

  • R语言ggplot2x轴顺序设置自定义颜色的操作

    先声明一下所用的数据集 第一个图如下 这个图主要在于x轴的顺序设置上,如果按不做任何处理的话>3那个就会在2之前,解决方法是b[,1]<-factor(b[,1],levels=c('2','3',">3")),这句代码可以重新设置因子的级别 完整代码如下: a[,1]<-factor(a[,1],levels=c('2','3',">3")) ggplot(a,aes(x=a[,1],y=a[,2]))+geom_bar(stat=&

  • R语言利用ggplot2绘制QQ图和箱线图详解

    目录 绘制qq图 函数介绍 例子 绘制boxplot 函数介绍 例子 利用分位点绘制箱线图 将QQ图和箱线图进行融合 函数介绍 参数介绍 注意事项 例子 绘制qq图 在ggplot2中绘制qq图需要两步,geom_qq()将绘制样本分位点,geom_qq_line()将绘制标准正态线 函数介绍 geom_qq() geom_qq( mapping = NULL, data = NULL, geom = "point", position = "identity",

  • Python/R语言分别实现斐波那契数列的示例详解

    目录 前言 1.年龄计算 1.1 图解问题 1.2 代码解决 1.3 实验小结 2.斐波那契数列 2.1 图解问题 2.2 代码实现 2.3 实验小结 总结 前言 此专栏为python与R语言对比学习的文章:以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助. “博观而约取,厚积而薄发!”谨以此言,望诸君共勉 本文将前两个小实验整理拼凑再了一起 :分别是“年龄计算”.“斐波那契数列”.具体的项目介绍见下文. 1.年龄计算 有 5 个人

  • R语言箱线图创建实例讲解

    箱线图是数据集中的数据分布良好的度量. 它将数据集分成三个四分位数. 此图表表示数据集中的最小值,最大值,中值,第一四分位数和第三四分位数. 它还可用于通过绘制每个数据集的箱线图来比较数据集之间的数据分布. R语言中使用boxplot()函数来创建箱线图. 语法 在R语言中创建箱线图的基本语法是 - boxplot(x, data, notch, varwidth, names, main) 以下是所使用的参数的描述 - x是向量或公式. 数据是数据帧. notch是逻辑值. 设置为TRUE以绘

  • echarts学习笔记之箱线图的分析与绘制详解

    一.箱线图 Box-plot 箱线图(Boxplot)也称箱须图(Box-whisker Plot),它是用一组数据中的最小值.第一四分位数.中位数.第三四分位数和最大值来反映数据分布的中心位置和散布范围,可以粗略地看出数据是否具有对称性.通过将多组数据的箱线图画在同一坐标上,则可以清晰地显示各组数据的分布差异,为发现问题.改进流程提供线索. 什么是四分位数 箱线图需要用到统计学的四分位数(Quartile)的概念,所谓四分位数,就是把组中所有数据由小到大排列并分成四等份,处于三个分割点位置的数

  • R语言中ggplot2绘制双坐标轴图

    R包ggplot2绘图精美,可以做出很复杂的图形,深受用户喜爱.它的作者hadley并不推荐使用ggplot2绘制双坐标轴图,认为这样会增加读图的难度,但是目前需要双坐标轴图应用的场景还是很多,如下图形直方图和曲线分别有不同的坐标轴,表示不同的意思,图片展示内容比较丰富 今天我们通过我们的汽车销售数据(公众号回复:汽车销售,可以获得数据)来演示一下ggplot2绘制双坐标轴图,主要是通过sec.axis函数进行转换,进行第二个坐标轴的转换.我们先来导入数据 library(foreign) li

  • R语言编程学习绘制动态图实现示例

    在讨论级数时,可能需要比对前 n n n项和的变化情况,而随着 n n n的递增,通过动态图来反映这种变化会更加直观,而通过R语言绘制动态图也算是一门不那么初级的技术,所以在此添加一节,补充一下R语言的绘图知识. 绘图需要用到ggplot2,为多张图加上时间轴则需要用到gganimate,为了让这些动态图片被渲染,需要用到av.此外,ggplot2绘图需要输入的数据格式为tibble. install.packages("ggplot2") install.packages("

  • R语言使用ggplot绘制画中画细节放大的方法

    目录 1. 载入相关包 2. 数据生成 3. 基础绘图 4. 放大效果 5. 绘图美化 其他方法 当我们在利用ggplot绘图时,当遇到一些量纲相差过大,或者一些图的某些点排布密集时,需要将细节部分进行放大,这时我们就需要采用画中画的方式,或者将统计图的细节在旁边进行放大. 下面我们就来一步一步讲解如何将图中的细节进行放大(核心为ggforce包).话不多说,先上最终效果图(以2019年双十一数据拟合为例): 1. 载入相关包 library(ggplot2) # 绘图核心 library(ti

随机推荐