9

ggplotを使用してデータの上に数学関数をオーバーレイする方法はありますか?

## add ggplot2
library(ggplot2)

# function
eq = function(x){x*x}

# Data                     
x = (1:50)     
y = eq(x)                                                               

# Make plot object    
p = qplot(    
x, y,   
xlab = "X-axis", 
ylab = "Y-axis",
) 

# Plot Equation     
c = curve(eq)  

# Combine data and function
p + c #?

curve()この場合、私のデータは関数を使用して生成されますが、ggplotでの使用方法を理解したいと思います。

4

2 に答える 2

16

あなたはおそらく欲しいですstat_function

library("ggplot2")
eq <- function(x) {x*x}
tmp <- data.frame(x=1:50, y=eq(1:50))

# Make plot object
p <- qplot(x, y, data=tmp, xlab="X-axis", ylab="Y-axis")
c <- stat_function(fun=eq)
print(p + c)

そして、本当に使用したい場合curve()、つまり、計算されたx座標とy座標は次のとおりです。

qplot(x, y, data=as.data.frame(curve(eq)), geom="line")
于 2009-12-05T23:35:09.193 に答える
3

質問のタイトルが「Rで関数をプロットする」でcurveある場合、ベースRプロットに関数を追加するために使用する方法は次のとおりです。

以前と同じようにデータを作成します

eq = function(x){x*x}; x = (1:50); y = eq(x)

次に、plotfromベースのグラフィックを使用してポイントをプロットし、その後curveadd=TRUE引数を付けて曲線を追加します。

plot(x, y,  xlab = "X-axis", ylab = "Y-axis") 
curve(eq, add=TRUE)
于 2012-08-02T23:40:17.310 に答える