How can I plot my R Squared value on my scatterplot using R?
Solution 1
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()
.
Solution 2
The text
function places text into the current plot, it is one option for adding the r-squared value to a plot. Also look at the grconvertX
and grconvertY
functions for ways to find the location to place the text.
The corner.label
and emptyspace
functions in the plotrix
package may also help.
Admin
Updated on July 09, 2022Comments
-
Admin almost 2 years
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))
-
Admin over 13 yearsThanks for the quick response. Seems to work, don't think I would have thought of that in a hurry!
-
Admin over 13 yearsApologies - still getting used to how this all works. I think thats accepted now..
-
Admin over 13 yearsThanks for the alternative option. I'm already used to using legend so will stick with that for now.
-
Dirk Eddelbuettel over 13 yearsNo apology needed. At some point each one of us was new here, and we're all learning together.