You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中,qqplot(x,y)与plot(sort(x),sort(y))是否生成相同绘图?

在R语言中qqplot(x,y)与plot(sort(x),sort(y))是否生成相同绘图?

结论

是的,这两个命令生成的绘图完全一致。

原因

qqplot(x, y)的核心逻辑就是对输入的两个向量分别排序,然后绘制排序后x向量与排序后y向量的散点图,和直接执行plot(sort(x), sort(y))的绘图逻辑完全相同。

验证方法说明

  • 你通过qqnorm(100)生成数据后看到绘图一致,这个观察是正确的,还可以用更严谨的方式验证:
    使用qqplot(x, y, plot.it = FALSE)参数,让函数只返回排序后的坐标数据而不绘图,再和sort(x)、sort(y)做对比:

    set.seed(123)
    x <- rnorm(100)
    y <- rnorm(100)
    
    # 获取qqplot的坐标数据
    qq_coords <- qqplot(x, y, plot.it = FALSE)
    
    # 对比排序后的向量与qqplot返回的坐标
    all.equal(qq_coords$x, sort(x)) # 输出TRUE
    all.equal(qq_coords$y, sort(y)) # 输出TRUE
    
  • 你尝试用qqplot(x,y) == plot(sort(x),sort(y))对比得到logical(0),是因为两个函数的返回值类型不同:

    • qqplot()默认会返回一个包含排序后x、y坐标的list对象;
    • plot()函数执行后返回的是NULL;
      直接用==比较list和NULL是无效操作,因此得到无意义的logical(0)结果,不能用来判断绘图是否一致。

内容的提问来源于stack exchange,提问作者Filippo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:52:04