【发布时间】:2014-05-02 21:10:11
【问题描述】:
假设我们有:
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”选项。
但是,我想我需要的是类似于 quantile 中的 probs 参数,但在二维而不是一维上。
我还看到了图形包中的解决方案。但是,我想在 ggplot 中执行此操作。
非常感谢您的帮助,
乔恩
【问题讨论】:
-
stat_density2d不正是您第 1 部分所需要的吗?对于第 2 部分(包含 95% 概率的等高线),我可以向您展示如何确定 ggplot2 之外的相关截止密度,然后使用该密度来指定等高线,但我认为不可能都是在 ggplot2 中完成,没有一些极端的魔法(即编写自己的 stat/geom 组件) -
遗憾的是没有。这似乎显示了 y ~ x 的界限。我在 x-y 平面上绘制一个平滑的多边形,划分出 95% 的散射(或基于散射的密度)所在的区域。不过还是谢谢。
-
我的意思是我想通过一个显示分布中心的点(第 1 部分)和一条显示估计值集中位置的等高线来总结很多二元值。即在两个维度上以图形方式进行类似于分位数 (x, probs=c(0.025, 0.5, 0.975)) 在一个维度上所做的事情。
-
感谢您迄今为止的帮助。我在单独使用图形包时知道以下内容,哪种方法可以工作,但希望有一个选项可以简单地在 ggplot2 中执行此类操作,因为默认美学更好。