绘制两组数据的时间序列和回归线

时间:2018-03-29 15:39:44

标签: r ggplot2

我有两年来两个站点的数据(请注意抽样年份的差异)。样本如下:

df<- data.frame( year= c(seq(1997,2016,1), seq(2001,2017,1)), 
             site= c(rep("cr", 20),rep("ec", 17)),
             mean= sample(1:50,37))

我想为每个mean制作一个类似时间序列的year图表。每个数据点将被连接(以典型的时间序列图形的Z字形方式),然后叠加回归线以指示趋势。我使用ggplot创建了一个类似时间序列的图(我不介意基础包中的解决方案),但是我无法在没有错误的情况下为每个站点叠加虚线回归线。

以下是我尝试的代码:

f1 <- ggplot(data = df, aes(x = year, y = mean, group= site, color= 
 site))+
geom_line(aes(color=site)) + 
geom_point( aes(color=site),size=0.5)+
geom_smooth(method = "lm", se = FALSE, size= 0.5, aes(fill=site, 
linetype= 2 ))+
scale_linetype_manual(values=c("solid", "solid"))+
scale_color_manual(values=c("#CC0000", "#000000"))+
theme_minimal()+  
scale_x_continuous("Year",limits = c(1997, 2020), breaks = 
seq(1995,2020,5)) +
scale_y_continuous("Mean Monthly Abundance", limits = c(0, 1500), 
breaks=seq(0, 1500, by = 100)) +
theme_bw()+
theme(axis.line = element_line(colour = "black"),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank()) 

f1

我希望此图表说明一些细节:

  • 每个组(site)的点和连接每个点的线都有不同的颜色(黑色,红色)
  • 每个组的回归线(site)将为虚线并与上面指定的颜色匹配。
  • 回归线不应延伸到y轴,并且应限制为数据的长度 -Points不需要是可见的。只有连接每个点的线应该是可见的。
  • 优选地,虚线回归线将不显示阴影95%CI。

1 个答案:

答案 0 :(得分:0)

正如@kath所说,添加linetype =&#34;虚线&#34;会解决它。我也对代码进行了一些小修改:

'Where'