gpt4 book ai didi

r - 如何绘制等高线,显示 95% 的值落在 R 和 ggplot2 中的位置

转载 作者:行者123 更新时间:2023-12-03 23:00:14 26 4
gpt4 key购买 nike

假设我们有:

x <- rnorm(1000)
y <- rnorm(1000)

如何使用 ggplot2 生成包含以下两个几何图形的图:
  • 两个系列值的二元期望
  • 显示 95% 的估计值落在何处的等高线?

  • 我知道如何做第一部分:
     df <- data.frame(x=x, y=y)
    p <- ggplot(df, aes(x=x, y=y))
    p <- p + xlim(-10, 10) + ylim(-10, 10) # say
    p <- p + geom_point(x=mean(x), y=mean(y))

    我也知道 ggplot2 中的 stat_contour() 和 stat_density2d() 函数。

    而且我也知道 stat_contour 中有“bins”选项。

    但是,我想我需要的是类似于分位数内的 probs 参数,但超过二维而不是一维。

    我还在图形包中看到了一个解决方案。但是,我想在 ggplot 中执行此操作。

    非常感谢帮助,

    乔恩

    最佳答案

    不幸的是,目前接受的答案失败了 Error: Unknown parameters: breaksggplot2 2.1.0 .我根据 this answer 中的代码拼凑了一种替代方法。 ,它使用 ks用于计算核密度估计的包:

    library(ggplot2)

    set.seed(1001)
    d <- data.frame(x=rnorm(1000),y=rnorm(1000))

    kd <- ks::kde(d, compute.cont=TRUE)
    contour_95 <- with(kd, contourLines(x=eval.points[[1]], y=eval.points[[2]],
    z=estimate, levels=cont["5%"])[[1]])
    contour_95 <- data.frame(contour_95)

    ggplot(data=d, aes(x, y)) +
    geom_point() +
    geom_path(aes(x, y), data=contour_95) +
    theme_bw()

    结果如下:

    enter image description here

    提示 : ks包取决于 rgl包,手动编译可能很麻烦。即使您在 Linux 上,获得预编译版本也容易得多,例如 sudo apt install r-cran-rgl在 Ubuntu 上,如果您设置了适当的 CRAN 存储库。

    关于r - 如何绘制等高线,显示 95% 的值落在 R 和 ggplot2 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437000/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com