【问题标题】:Color area under curve with Lattice格子曲线下的颜色区域
【发布时间】:2016-03-25 19:48:07
【问题描述】:

我想对正态曲线下两个间隔之间的区域进行着色/着色,例如示例中产生的那个。间隔可以是 125:140 或超过 140 的段。

library(lattice)

e4a <- seq(60, 170, length = 10000)
e4b <- dnorm(e4a, 110, 15)
xyplot(e4b ~ e4a,
   type = "l",
   scales = list(x = list(at = seq(60, 170, 5)), rot = 45),
   panel = function(x, ...){
           panel.xyplot(x, ...)
           panel.abline( v = c(110, 125, 95, 140, 80, 95), lty = 2)
   })

我为 R graphic base system 找到了一个非常简单的解决方案,但我没有为 Lattice 找到一个等效的解决方案。

【问题讨论】:

  • @Hack-R 这是基本图形。

标签: r plot lattice


【解决方案1】:

panel.polygon 存在:

xyplot(e4b ~ e4a,
       type = "l",
       scales = list(x = list(at = seq(60, 170, 5)), rot = 45),
       panel = function(x,y, ...){
           panel.xyplot(x,y, ...)
           panel.abline( v = c(110, 125, 95, 140, 80, 95), lty = 2)

           xx <- c(125, x[x>=125 & x<=140], 140) 
           yy <- c(0,   y[x>=125 & x<=140], 0) 
           panel.polygon(xx,yy, ..., col='red')
       })

正确获取多边形有点混乱。

请注意,e4a 已在您的数据中排序。如果不是这样,您可能需要在提交给panel.polygon 之前对其进行排序。

【讨论】:

    猜你喜欢
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多