Установка длины линии тренда в R

Мне удалось создать диаграмму рассеяния с двумя наборами данных на одном графике. Один набор данных имеет ось X, которая находится в диапазоне от 0 до 40 (зеленый), а другая - только от 0 до 15 (красный).

Http://s9.postimg.org/fw48s8rq7/Rplot.jpg

Я использовал этот код для добавления линий тренда к красным и зеленым данным отдельно (используя 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)

Моя проблема в том, что я не могу найти способ остановить красную линию тренда в 15 на оси х. Я "погуглил" вокруг, и, похоже, ничего не подошло к моей проблеме. Много на линии тренда Excel! Я устал добавлять оператор конца =, чтобы соответствовать<- и это тоже не сработало.

Пожалуйста помоги,

Я надеюсь, что я разместил достаточно информации. Заранее спасибо.

2 ответа

Решение

Вы можете сделать это в базовой графике с помощью 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-пределы кривой, вы можете сделать что-то вроде этого (при условии, что ваш фрейм данных называется df и ваша х-переменная называется 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)

Попробуйте использовать ggplot. В следующем примере используются данные mtcars:

library(ggplot2)
ggplot(mtcars, aes(qsec, wt, color=factor(vs)))+geom_point()+ stat_smooth(se=F)

Другие вопросы по тегам