2016-09-12 13 views
0

ここでstat_functionの内容を見直しましたが、まだ動作させることができません。ここでは分作業コードだ:R stat_function with alternative dataset

plotdata <- cbind(as.data.frame(seq(-5, 5, length=10)), as.data.frame(-seq(-5, 5, length=10))) 
colnames(plotdata) <- c('x', 'y') 

xvalues <- as.data.frame(seq(-5, 5, length = 100)) 
colnames(xvalues) <- 'x' 

xey <- function(x) {x} 

#ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(data=xvalues, fun = xey, linetype = 2) 

ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(mapping = aes(x = x), data=xvalues, fun = xey, linetype = 2) 

私が手にエラーがある:

Error in eval(expr, envir, enclos) : object 'y' not found 

あなたが見ることができるように、私はマッピングにとない場合の両方を試してみたとの誤差が同じです。プロットはstat_functionなしで動作し、xey関数はベクトル化され、xの形で書かれ、xvalues列はxと書かれているので、????

xvaluesにEDIT - 名前付き列が追加されましたが、ノートブックから転送されませんでした。

答えて

0

これはstat_functionの問題ではありません。 関数に渡すデータセットはyという列はありません。 dataパラメータ値を変更すると、問題が解決されます。

ggplot(plotdata, aes(x, y)) + geom_line() + stat_function(mapping = aes(x = x), data=plotdata, fun = xey, linetype = 2) 
+0

ありがとうリルコン!ああ、最小の実例をまとめることに問題があります。 Plsは、xvaluesがplotdataの値と異なると考えています。私はstat_functionをplotdataよりもxの値だけで構成された異なるデータセットにプロットしたい。私の質問へのあなたの注意のためにそんなにありがとう。 – zazizoma

+1

'stat_function'への入力は方程式または' x、y'の組でなければなりません。 'x'値だけを渡すように見えます。 – Rilcon42

+0

x = xは、ドキュメントのstat_plotsの例であり、yを使用しません。しかし、私はマッピングでx = x、y = 0を試してみました。 – zazizoma