我正在尝试在图表中添加线性回归线,但是当它运行时,它没有显示出来。以下代码已简化。每天通常有多个点。除此之外,图表还不错。
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
它可能非常简单,但我似乎无法弄明白。或者我使用x轴的日期这一事实,但我没有收到任何错误。如果是由于日期,我不知道如何处理它。感谢。
答案 0 :(得分:17)
目前,您的日期是您输入字符向量后的一个因素。请参阅class(b$day)
。
将其更改为日期后,线性回归将正常运行。
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
答案 1 :(得分:0)
# sample data
d <- data.frame(expand.grid(x=letters[1:4], g=factor(1:2)), y=rnorm(8))
# Try the below three different scripts to draw.
ggplot(d, aes(x=x, y=y, colour=g)) + geom_line() + geom_point()
ggplot(d, aes(x=x, y=y, colour=g, group=g))+ geom_line() + geom_point()
ggplot(d, aes(x=x, y=y, colour=g, group=1)) + geom_line() + geom_point()
关键规则: geom_line()尝试连接属于同一组的数据点。 不同级别的因子变量属于不同的组。