小编Max*_*Max的帖子

将数据框列提供给xyplot面板功能

我在一个数据框上使用xyplot,并希望为一个面板函数提供不是(x,y,...)参数的数据,而是数据框的一些附加列(例如下面的例子中的k):

library(lattice)

mydata <- data.frame(xxx = 1:20,
                     yyy = rbinom(20,20,.5),
                     uuu = gl(2,10),
                     k = rnorm(20))

xyplot( formula = yyy ~ xxx | uuu, data = mydata,
        panel = function(x,y,k, ...){
                n <- x * k
                panel.xyplot(n,y,...)
                })
Run Code Online (Sandbox Code Playgroud)

我知道这不起作用,因为R不会将此k列提供给面板功能.有一个简单的方法吗?

(我不是试图在我的实际面板函数中将x乘以k.我正在调用另一个需要k的函数...)

非常感谢!

plot r lattice

8
推荐指数
1
解决办法
1098
查看次数

ggplot2 2.0 new stat_ function:设定给定美学的默认比例

我尝试在R中使用ggplot2的新功能,允许创建我们自己的stat_函数.我正在创建一个简单的计算和绘制排列在2d数组上的点之间的插值表面.

我想创建一个stat_topo()要求x,y以及val美学,绘制简单的geom_raster内插的val映射fill.

library(ggplot2)
library(dplyr)
library(akima)

cpt_grp <- function(data, scales) {
  #interpolate data in 2D
  itrp <- akima::interp(data$x,data$y,data$val,linear=F,extrap=T)
  out <- expand.grid(x=itrp$x, y=itrp$y,KEEP.OUT.ATTRS = F)%>%
    mutate(fill=as.vector(itrp$z))
  # str(out)
  return(out)
}

StatTopo <- ggproto("StatTopo", Stat,
                    compute_group = cpt_grp,
                    required_aes = c("x","y","val")
)
stat_topo <- function(mapping = NULL, data = NULL, geom = "raster",
                       position = "identity", na.rm = FALSE, show.legend = NA, 
                       inherit.aes = TRUE, ...) {
  layer(
    stat …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 ggproto

6
推荐指数
1
解决办法
304
查看次数

标签 统计

plot ×2

r ×2

ggplot2 ×1

ggproto ×1

lattice ×1