有没有一种方法可以使用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中的数据点之上绘制函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853703/