在散点图上绘制R中的函数

时间:2017-07-24 22:53:15

标签: r plot

目前,我有一些数据,说它们存储在data.frame data$ydata$x中。我使用log(y) = a + bx + cx^2fit <- lm(log(data$y) ~ data$x + I(data$x^2), data=data)格式对此数据进行回归,格式为plot(log(data$y), data$x)

我已经使用函数fit <- lm(log(data$y) ~ data$x + I(data$x^2), data=data) plot(log(data$y), data$x) # what goes here to plot the fit? 绘制了一个散点图。

FROM ubuntu:latest
EXPOSE 80
ENV HELLO world \
    && DOCKER whale
RUN # Run stuff
COPY source /to/container
CMD # Do stuff

如何在情节上绘制此表格的曲线?是否有一种简单的方法来绘制它,例如,某些函数只是允许在散点图上绘制曲线?

1 个答案:

答案 0 :(得分:4)

这不是内置函数(我知道),但predict() + lines()非常简单。

设置示例:

set.seed(101)
dd <- data.frame(x=rnorm(100))
dd$y <- with(dd,exp(rnorm(100,mean=2+3*x-x^2,sd=0.5)))

适合:(请注意,在公式中使用data$

fit <- lm(log(y) ~ x + I(x^2), data=dd)

简介:

plot(log(y)~x,data=dd)

添加预测:

newx <- seq(min(dd$x),max(dd$x),length.out=100)
lines(newx,predict(fit,newdata=data.frame(x=newx)))

enter image description here

您可以直接使用dd$x而不是构建newx,但当预测变量稀疏和/或不规则时,均匀间隔的点会更好。

另一种可能性是ggplot2

library(ggplot2)
ggplot(dd,aes(x,log(y)))+geom_point()+
    geom_smooth(method="lm",formula=y~x+I(x^2))

enter image description here