For my introduction course we are introduced to R studio and are tasked with creating scatter plots and were given code to put in exaime the outputs. However the below was entered and i receive an error. i can't figure out what has happened it worked in the book. Please advise.

```
lines(c(0,10),c(12,0),lty=2)
Error in plot.xy(xy.coords(x, y), type = type, ...) :
plot.new has not been called yet
```

and

```
> y=a+bx
Error: object 'a' not found
> abline(lm(y~x))
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
plot.new has not been called yet
```

1 Like

In base plotting, you start a plot by calling `plot`

or a similar command which generates a plot, which you can then add to with functions like `lines`

. For example, to plot a polynomial regression of mtcars,

```
model <- lm(mpg ~ poly(hp, 2), mtcars) # make a model
domain <- seq(min(mtcars$hp), max(mtcars$hp)) # define a vector of x values to feed into model
plot(mpg ~ hp, mtcars) # plot points
lines(domain, predict(model, newdata = data.frame(hp = domain))) # add regression line, using `predict` to generate y-values
```

`abline`

is a simplified version of `lines`

that only plots straight lines, and which has a method for plotting simple `lm`

objects.

For example, in the examples at the bottom of `?abline`

,

```
z <- lm(dist ~ speed, data = cars)
plot(cars)
abline(z) # equivalent to abline(reg = z) or
abline(coef = coef(z))
```

If you don't want `plot`

to plot anything, you can call it with enough information to set the axes properly and `type = "n"`

to plot nothing.

2 Likes