我设法在一个图上创建了一个包含两个数据集的散点图。一组数据的X轴范围为0-40(绿色),而另一组数据范围为0-15(红色)。
我使用此代码分别为红色和绿色数据添加趋势线(使用par(new))。
plot( x1,y1, col="red", axes=FALSE, xlab="",ylab="",ylim= range(0:1), xlim= range(0:40))
f <- function(x1,a,b,d) {(a*x1^2) + (b*x1) + d}
fit <- nls(y1 ~ f(x1,a,b,d), start = c(a=1, b=1, d=1))
co <- coef(fit)
curve(f(x, a=co[1], b=co[2], d=co[3]), add = TRUE, col="red", lwd=1)
我的问题是我似乎无法找到一种方法来阻止x轴上15处的红色趋势线。我“go”了一下,似乎没有任何问题出现在我的问题上。很多关于excel趋势线!我厌倦了添加一个end =语句以适应&lt; - 而且这也不起作用。
请帮忙,
我希望我已经发布了足够的信息。提前谢谢。
答案 0 :(得分:1)
尝试使用ggplot。以下示例使用mtcars数据:
library(ggplot2)
ggplot(mtcars, aes(qsec, wt, color=factor(vs)))+geom_point()+ stat_smooth(se=F)
答案 1 :(得分:0)
您可以使用from
函数的to
和curve
参数在基本图形中执行此操作(有关详细信息,请参阅curve
的帮助)。例如:
# Your function
f <- function(x1,a,b,d) {(a*x1^2) + (b*x1) + d}
# Plot the function from x=-100 to x=100
curve(f(x, a=-2, b=3, d=0), from=-100, to=100, col="red", lwd=1, lty=1)
# Same curve going from x=-100 to x=0 (and shifted down by 1000 units so it's
# easy to see)
curve(f(x, a=-2, b=3, d=-1000), from=-100, to=0,
add=TRUE, col="blue", lwd=2, lty=1)
如果要以编程方式设置曲线x-limits,可以执行以下操作(假设您的数据框名为df
,而您的x变量称为x
):
curve(f(x, a=-2, b=3, d=0), from=range(df$x)[1], to=range(df$x)[2],
add=TRUE, col="red", lwd=1, lty=1)