R内のデータ点の上にプロット関数
-
13-09-2019 - |
質問
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 #?
この場合、私のデータは、関数を使用して生成されますが、私はggplotでcurve()
を使用する方法を理解したい。
解決
あなたはおそらくしたい 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")
他のヒント
あなたの質問のタイトルは「Rの関数をプロットする」であることを考えると、ここでは基本Rプロットに機能を追加するためにcurve
を使用する方法です。
タグの前に、データを作成します。
eq = function(x){x*x}; x = (1:50); y = eq(x)
次に、曲線を追加するために、plot
引数でcurve
続く点をプロットするベースグラフィックからadd=TRUE
を使用します。
plot(x, y, xlab = "X-axis", ylab = "Y-axis")
curve(eq, add=TRUE)
所属していません StackOverflow