计算R中两个图之间的面积

snair.stack

我试图找到在 R 中的条形图和曲线/正态图之间形成的区域。我将 ggplot2 包用于所有绘图目的,并使用 gglocator 来识别坐标。但是我无法弄清楚如何计算曲线之间的面积。条形图将保持不变,但曲线会改变(因为它是 df 的每一行)。

这是类似于我的问题的可重现代码:

require(ggplot2)
require(ggmap)

x1 <- seq(1, 1000, 25)
x2 <- rnorm(40, mean = 1, sd = 0.25)
df <- data.frame(x1, x2)
bardf <- data.frame(x = c(150,500,750), 
                    height = c(1.4, 1.4, 1.2), 
                    width = c(50,70,90))
p <- ggplot() + 
    geom_bar(data = bardf, aes(x,height, width = width), fill = "white", stat = "identity") +
    geom_line(data = df, aes(x1,x2))

print(p)
gglocator()

这是情节: 查找:条形图和曲线下的区域

查找:条形图和曲线下方之间的区域(请忽略红色圆圈)。任何人都知道如何应对这一挑战。我在 SO 中发现了几个关于计算面积的问题,但其中大部分是针对 ROC 的,或者只是关于对区域进行着色。任何建议/想法将不胜感激。

阿利斯泰尔

如果您用于approxfun构建将插值点的函数,则可以用于integrate计算面积。如果条形可以低于线,则pmin可以返回较低的高度:

library(ggplot2)
set.seed(1)    # returns a line partially higher than a bar

df <- data.frame(x1 = seq(1, 1000, 25), 
                 x2 = rnorm(40, mean = 1, sd = 0.25))
bardf <- data.frame(x = c(150,500,750), 
                    height = c(1.4, 1.4,1.2), 
                    width = c(50,70,90))

ggplot() + 
  geom_col(data = bardf, aes(x, height, width = width), fill = "white") +
  geom_line(data = df, aes(x1, x2))

# iterate in parallel over bardf to calculate all areas at once
mapply(function(x, h, w){
    integrate(function(v){pmin(approxfun(df$x1, df$x2)(v), h)}, 
              lower = x - .5 * w, 
              upper = x + .5 * w
    )$value}, 
    bardf$x, bardf$height, bardf$width)
#> [1] 52.40707 83.28773 98.38771

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算Networkx中两个图之间的差异

来自分类Dev

计算Python中两个独立几何的面积

来自分类Dev

如何计算闪亮或R代码中两个圆的交集面积

来自分类Dev

计算R中两个日期之间的天数

来自分类Dev

以R中两个坐标之间的间隔计算点

来自分类Dev

Matlab:计算两个图之间的转换

来自分类Dev

计算Networkx中两个图``边明智''之间的差异

来自分类Dev

用两个变量制作面积图

来自分类Dev

计算R中两个不同数据帧中两个时间戳之间的行

来自分类Dev

通过使用两个类来计算圆的面积

来自分类Dev

在Matplotlib中的两个图之间画线

来自分类Dev

R:计算并绘制两个密度国家之间的差异

来自分类Dev

R如何计算两个矩阵行之间的差异?

来自分类Dev

R / lubridate:计算两个时期之间重叠的天数

来自分类Dev

如何计算R中两个矩阵之间的欧式距离

来自分类Dev

计算R中两个事件(给定的日期和时间)之间的时差

来自分类Dev

如何计算矩阵中两个元素之间的最大欧几里得距离-R?

来自分类Dev

R中是否可以计算两个不同事件之间事件发生的次数?

来自分类Dev

在R中两个瘦高个矩阵之间计算按行点积的最快方法

来自分类Dev

计算JPA中两个日期之间的天数

来自分类Dev

计算java中两个日期之间的天数

来自分类Dev

如何计算oracle中两个日期之间的天数?

来自分类Dev

计算Python中两个小时变量之间的差异

来自分类Dev

计算bash中两个时间戳之间的差异

来自分类Dev

计算numpy中两个向量之间的成对差异?

来自分类Dev

计算查询中两个nbr i之间的差异?

来自分类Dev

pdb文件中两个原子之间的距离计算

来自分类Dev

n计算两个表中的值之间的差

来自分类Dev

计算PHP中两个日期之间的天数

Related 相关文章

  1. 1

    计算Networkx中两个图之间的差异

  2. 2

    计算Python中两个独立几何的面积

  3. 3

    如何计算闪亮或R代码中两个圆的交集面积

  4. 4

    计算R中两个日期之间的天数

  5. 5

    以R中两个坐标之间的间隔计算点

  6. 6

    Matlab:计算两个图之间的转换

  7. 7

    计算Networkx中两个图``边明智''之间的差异

  8. 8

    用两个变量制作面积图

  9. 9

    计算R中两个不同数据帧中两个时间戳之间的行

  10. 10

    通过使用两个类来计算圆的面积

  11. 11

    在Matplotlib中的两个图之间画线

  12. 12

    R:计算并绘制两个密度国家之间的差异

  13. 13

    R如何计算两个矩阵行之间的差异?

  14. 14

    R / lubridate:计算两个时期之间重叠的天数

  15. 15

    如何计算R中两个矩阵之间的欧式距离

  16. 16

    计算R中两个事件(给定的日期和时间)之间的时差

  17. 17

    如何计算矩阵中两个元素之间的最大欧几里得距离-R?

  18. 18

    R中是否可以计算两个不同事件之间事件发生的次数?

  19. 19

    在R中两个瘦高个矩阵之间计算按行点积的最快方法

  20. 20

    计算JPA中两个日期之间的天数

  21. 21

    计算java中两个日期之间的天数

  22. 22

    如何计算oracle中两个日期之间的天数?

  23. 23

    计算Python中两个小时变量之间的差异

  24. 24

    计算bash中两个时间戳之间的差异

  25. 25

    计算numpy中两个向量之间的成对差异?

  26. 26

    计算查询中两个nbr i之间的差异?

  27. 27

    pdb文件中两个原子之间的距离计算

  28. 28

    n计算两个表中的值之间的差

  29. 29

    计算PHP中两个日期之间的天数

热门标签

归档