ggplot两个轴的函数作为栅格?

时间:2016-12-08 00:15:35

标签: r ggplot2 raster

我想用x和y轴的函数填充栅格。我最好的猜测是这样的:

library(ggplot2)

df <- data.frame(x = c(-20,20), y = c(-20,20))
f <- function (x, y) x * y

ggplot(df, aes(x,y)) +
    stat_function(fun = f, geom="raster")

显然,有一种解决方法可以创建矩阵,用值填充它,将其转换为栅格对象,然后转换为点,但是有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

此类任务的主要思想是(如您所述)预先计算值并将其提供给ggplot。没有&#34;直接&#34;做你要问的方法(至少据我所知),但你可以把这个片段包装成你自己的geom。另请查看this问题。

coords <- expand.grid(x=seq(-20, 20, by=0.5), y=seq(-20, 20, by=0.5))
coords$value <- apply(coords, 1, FUN=function(x) prod(x))
ggplot(coords, aes(x, y, fill=value)) + 
  geom_raster()

enter image description here

分辨率由by控制,显然。