【发布时间】:2019-08-06 13:39:42
【问题描述】:
数据框df1 总结了一条鱼在一段时间内的平均每日深度(meanDepth),以及不同深度的每日平均水温(T5m、T15m、T25m 和 T35m)以及整个水柱的日平均温度(meanT)(不考虑不同深度)。举个例子:
df1<- data.frame(Date=c("2016-08-05","2016-08-06","2016-08-07","2016-08-08","2016-08-09","2016-08-10"),
meanDepth=c(15,22,18,25,27,21),
T5m=c(17,18,21,23,21,18),
T15m=c(16,17,18,19,18,17),
T25m=c(16,17,17,18,18,17),
T35m=c(15,16,17,17,17,16),
meanT=c(16,17.2,17.8,18.3,17.8,17.4))
df1$Date<-as.Date(df1$Date)
df1
Date meanDepth T5m T15m T25m T35m meanT
1 2016-08-05 15 17 16 16 15 16.0
2 2016-08-06 22 18 17 17 16 17.2
3 2016-08-07 18 21 18 17 17 17.8
4 2016-08-08 25 23 19 18 17 18.3
5 2016-08-09 27 21 18 18 17 17.8
6 2016-08-10 21 18 17 17 16 17.4
我想在一张图中绘制鱼的深度剖面和不同深度的日平均温度。
到目前为止,我在一个 Y 轴上绘制 meanDepth,在另一个 Y 轴上绘制 meanT。但我不知道如何添加更多与右 y 轴(=温度)相关的线,这些线代表不同深度的日平均温度。这里有我迄今为止能够构建的代码。
p <- ggplot(df1, aes(x = Date))
p <- p + geom_line(aes(y = meanDepth, colour = "Overall daily mean depth"))
p <- p + geom_line(aes(y = meanT/(max(range(df1$meanT,na.rm=TRUE)/max(range(df1$meanDepth,na.rm=TRUE)))), colour = "Mean Water T"))
p <- p + scale_y_continuous(sec.axis = sec_axis(~.*(max(range(df1$meanT,na.rm=TRUE)/max(range(df1$meanDepth,na.rm=TRUE)))), name = "Mean daily Temp"))
p <- p + scale_colour_manual(values = c("blue", "red"))
p <- p + labs(title="Mean daily depth and water temperature through time",
y = "Mean daily depth",
x = "Date",
colour = "Parameter")
p <- p + theme(legend.position = c(0.8, 0.9), plot.title = element_text(hjust=0.5, face="bold",margin = margin(0,0,12,0) ),axis.title.y =element_text(margin = margin(t = 0, r = 12, b = 0, l = 0)),axis.title.x =element_text(margin = margin(t = 12, r = 0, b = 0, l = 0)),axis.text.x=element_text(angle=60, hjust=1))
p <- p + scale_x_date(date_breaks = "1 days", labels = date_format("%Y-%m-%d"))
p
有没有人如何添加与 5、15、25 和 35 米的温度有关的线?
【问题讨论】: