web-dev-qa-db-ja.com

ggplotのcurve()と同等

基本グラフィックスで使用されるcurve()コマンドにggplotを使用して関数をプロットする同等の方法はありますか?別の方法は、関数の値のベクトルを作成し、接続された線をプロットすることだと思いますが、もう少し単純なものを期待していました。

ありがとう!

64
Charlie

stat_functionを使用して曲線を追加できます。

ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin)

qplotを使用することもできますが、これが簡単かどうかは明確ではありません。

qplot(c(0,2), fun=sin, stat="function", geom="line")

曲線関数がより複雑な場合は、ラムダ関数を使用します。例えば、

ggplot(data.frame(x=c(0, 10)), aes(x)) + 
  stat_function(fun=function(x) sin(x) + log(x))

http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/ で他の例を見つけることができます

73
kohske

data.frame上記の例はうまく機能し、グリッド線を作成します。 qplotの例は、指定された理由により、ggplot2 2.2.0では機能しません。

Ggplot2 2.2.0で「曲線」関数を使用することもできますが、グリッド線や背景色は自動的には作成されません。例えば:

curve(cos(x), from= 0, to= pi/2).  

"ggplot(data.frame(...)メソッドは、ggplot2のフォーマットオプションのすべての印象的な範囲を提供します。私はそれが好きです。