ggplot2做qqplot图

转载自http://stats.stackexchange.com/questions/12392/how-to-compare-two-datasets-with-q-q-plot-using-ggplot2

感谢csgillespie的答案

qqplot是可以直观反应两组数字是否属于同一分布的作图。ggplot2提供了一个qqplot的函数,但这个函数并不能对两组观测的数字进行作图。与此相对的是,R中却有原生函数qqplot来提供这个作图。

以下是如何利用qqplot函数的方法,使用ggplot来作图。

这是R中qqplot的原始方法:

R> qqplot
function (x, y, plot.it = TRUE, xlab = deparse(substitute(x)),
    ylab = deparse(substitute(y)), ...)
{
    sx <- sort(x)
    sy <- sort(y)
    lenx <- length(sx)
    leny <- length(sy)
    if (leny < lenx)
        sx <- approx(1L:lenx, sx, n = leny)$y
    if (leny > lenx)
        sy <- approx(1L:leny, sy, n = lenx)$y
    if (plot.it)
        plot(sx, sy, xlab = xlab, ylab = ylab, ...)
    invisible(list(x = sx, y = sy))
}
<environment: namespace:stats>

这是ggplot利用同样方法进行作图的代码:

x <- rnorm(10);y <- rnorm(20)

sx <- sort(x); sy <- sort(y)
lenx <- length(sx)
leny <- length(sy)
if (leny < lenx)sx <- approx(1L:lenx, sx, n = leny)$y
if (leny > lenx)sy <- approx(1L:leny, sy, n = lenx)$y

require(ggplot2)
g = ggplot() + geom_point(aes(x=sx, y=sy))
g
时间: 2024-10-25 13:37:44

ggplot2做qqplot图的相关文章

ggplot2绘制概率密度图

以下绘图以Weibull分布(韦伯分布.威布尔分布)为例 关于Weibull分布(韦伯分布.威布尔分布),请参考本人博客http://www.cnblogs.com/wwxbi/p/6141501.html library(ggplot2)# 这里的d和y都有大小顺序d<- seq(0, 5, length.out=10000)y<-dweibull(d, shape=5, scale=1, log = FALSE)df<-data.frame(x=d,y)ggplot(df,aes(x

ggplot2绘制多图

参考链接:http://www.cnblogs.com/nxld/p/6065237.html ggplot2.multiplot是一个易于使用的功能,将多个图形在同一页面上使用R统计软件和GGPLOT2绘图方法.这个功能是从easyGgplot2包. 安装并加载easyGgplot2包,easyGgplot2 软件包可以安装如下: install.packages("devtools") library(devtools) install_github("easyGgplo

之前做关系图的集中方式介绍,值不值的用

Circos最初主要用于基因组序列相关数据的可视化,目前已应用于多个领域,例如:影视作品中的人物关系分析,物流公司的订单来源和流向分析等,大多数关系型数据都可以尝试用Circos来可视化.缺点:绘制的是图,不能进行操作,拖动 BirdEye是Decearative Visual Analytics,它属于一个群体专案,为了要提升设计和广泛的开源资料视觉化发展,并且为了Adobe Flex建视觉分析图库,这个动作以叙述性的资料库为主,让使用者能够建立多元资料视觉化界面来分析以及呈现资讯.缺点:要和

Linux下使用mtr做路由图进行网络分析

首先安装mtr # yum -y install mtr 一般在windows 来判断网络连通性用ping 和tracert, ping的话可以来判断丢包率,tracert可以用来跟踪路由, 在Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr [[email protected] ~]# mtr -h usage: mtr [-hvrctglspni46] [--help] [--version] [--r

javascript 基础练习 做Bingo图

---恢复内容开始--- <!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>循环处理操作</title>        <script type="text/javascript">        /*            window.onload=iniAll;        

我想问一下,您做动图用的是什么软件,我找了一款,但是不是很清楚。期待您的回复~~

6,以下表达式的运行结果是: var END = Math.pow(2,53); var START = END -100; var count = 0; for(var i = START ; i <= END ;i++){ count ++; } console.log(count); A.0 B.100 C.101 D.其他 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 7,以下表达式的运行结果是: var arr = [0,1,2]; arr[10]

如何录屏做GIF图

网上找了一下,ScreenToGif 这个神器 https://github.com/NickeManarin/ScreenToGif https://github.com/NickeManarin/ScreenToGif/releases/tag/2.19.1 可以直接下载exe免安装 超级好用,就是他↓ 原文地址:https://www.cnblogs.com/marszhw/p/11684630.html

R语言:ggplot2精细化绘图——以实用商业化图表绘图为例

本文旨在介绍R语言中ggplot2包的一些精细化操作,主要适用于对R画图有一定了解,需要更精细化作图的人,尤其是那些刚从excel转ggplot2的各位,有比较频繁的作图需求的人.不讨论那些样式非常酷炫的图表,以实用的商业化图表为主.包括以下结构: 1.画图前的准备:自定义ggplot2格式刷 2.画图前的准备:数据塑形利器dplyr / tidyr介绍 3.常用的商业用图: 1)简单柱形图+文本(单一变量) 2)分面柱形图(facet_wrap/facet_grid) 3)簇型柱形图(posi

ggplot2作图详解7(完):主题(theme)设置

凡是和数据无关的图形设置内容理论上都可以归为主题类,但考虑到一些内容(如坐标轴)的特殊性,可以允许例外的情况.主题的设置相当繁琐,很容易就占用了 大量的作图时间,应尽量把这些东西简化,把注意力主要放在数据分析上.基于这种考虑,ggplot2主题设置的内容虽然相当多,本文仅在总体上作一简单介 绍. 1 theme函数及其参数 让使用者在数据分析阶段能专注于数据而不是图形细节,这是数据可视化分析工具是否合格的标准之一.某些作图软件(或自以为有作图能力的软件)给出的初始图 形简直惨不忍睹,不花时间修改