2016-12-08 7 views
0

x軸とy軸の関数でラスタを塗りたい。私の最高の推測では、このような何かた:ggplotラスタとしての両方の軸の関数ですか?

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") 

は明らかにこの問題を回避するには、ポイントに、行列を作成する値でそれを埋め、ラスタオブジェクトにそれを変換し、その中にありますが、もっと簡単な方法はありますか?

答えて

0

このようなタスクの主なアイデアは、(あなた自身が言ったように)値を事前計算してggplotに与えることです。私が知っている限りでは、あなたが求めていることをするための「直接的な」方法はありませんが、このスニペットを使って自分のギミックに包むことができます。 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によって制御されます。

関連する問題