I am trying to add a linear regression line to my graph, but when it's run, it's not showing up. The code below is simplified. There are usually multiple points on each day. The graph comes out fine other than that.
b<-data.frame(day=c('05/22','05/23','05/24','05/25','05/26','05/27','05/28','05/29','05/30','05/31','06/01','06/02','06/03','06/04','06/05','06/06','06/07','06/08','06/09','06/10','06/11','06/12','06/13','06/14','06/15','06/16','06/17','06/18','06/19','06/20','06/21','06/22','06/23','06/24','06/25'),
temp=c(10.1,8.7,11.4,11.4,11.6,10.7,9.6,11.0,10.0,10.7,9.5,10.3,8.4,9.0,10.3,11.3,12.7,14.5,12.5,13.2,16.5,19.1,14.6,14.0,15.3,13.0,10.1,8.4,4.6,4.3,4.7,2.7,1.6,1.8,1.9))
gg2 <- ggplot(b, aes(x=day, y=temp, color=temp)) +
geom_point(stat='identity', position='identity', aes(colour=temp),size=3)
gg2<- gg2 + geom_smooth(method='lm') + scale_colour_gradient(low='yellow', high='#de2d26')
gg2 <-gg2 + labs(title=filenames[s], x='Date', y='Temperture (Celsius)') + theme(axis.text.x=element_text(angle=-45, vjust=0.5))
gg2
It's probably something really simple, but I can't seem to figure it out. Or it's the fact I am using a date for the x-axis, but I'm not receiving any errors. If it is due to the date, I'm not sure how to approach it. Thanks.
The geom smooth function is a function for the ggplot2 visualization package in R. Essentially, geom_smooth() adds a trend line over an existing plot.
The warning geom_smooth() using formula 'y ~ x' is not an error. Since you did not supply a formula for the fit, geom_smooth assumed y ~ x, which is just a linear relationship between x and y. You can avoid this warning by using geom_smooth(formula = y ~ x, method = "lm")
se Display confidence interval around smooth (TRUE by default, see level to control.)
By default, the loess or gam function is used for smoothing (in relation to the size of dataset). Using the method combo-box, you can change this function to lm, glm, gam, loess, rlm. By the formula property you can set the formula that will be used in the smoothing function.
Currently your date is a factor since you entered in in as a character vector. See class(b$day)
.
Once you change it to a date, the linear regression will run fine.
b$Day <- as.Date(b$day, format='%m/%d')
# If dates are from 2015,
# b$Day <- as.Date(b$day, format='%m/%d') - 366
# check with head(b$Day)
gg2 <- ggplot(b, aes(x=Day, y=temp, color=temp)) +
geom_point(stat='identity', position='identity', aes(colour=temp),size=3)
gg2<- gg2 + geom_smooth(method='lm') +
scale_colour_gradient(low='yellow', high='#de2d26')
gg2 <-gg2 + labs(title=filenames[s], x='Date', y='Temperture (Celsius)') +
theme(axis.text.x=element_text(angle=-45, vjust=0.5))
g2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With