phrozenpenguin - 5 months ago 26

R Question

This seems a simple question, so I hope its a simple answer. I am plotting my points and fitting a linear model, which I can do OK. I then want to plot some summary statistics, for example the R Squared value, on the plot also. I can only seem to get the R Squared value at the command line.

Any advice; do I need to be looking at ggplot or anything else? Thanks in advance.

`#Does the plot`

plot(df$VAR1, df$VAR2)

#Adds the line

abline(lm(df$VAR2~df$VAR1), col="red")

#Shows stats on command line

summary(lm(df$VAR2~df$VAR1))

Answer

You can abuse `legend()`

because it has the handy logical placement:

```
R> DF <- data.frame(VAR1=rnorm(100), VAR2=rnorm(100))
R> with(DF, plot(VAR1, VAR2))
R> abline(fit <- lm(VAR2 ~ VAR1, data=DF), col='red')
R> legend("topright", bty="n", legend=paste("R2 is",
+ format(summary(fit)$adj.r.squared, digits=4)))
```

Here `bty="n"`

suppresses the box, and you need `format()`

to shorten the display. Other `text()`

is good, as are arguments `main=`

and `sub=`

to `plot()`

.