我使用下面的代码将ggplot添加为进一步向下的图像。该图是一条持续时间曲线,在y轴上显示排水量,在x轴上显示时间百分比。这些线代表一年的排水量测量值,总共有20年= 20条线。我想用gghighlight来突出显示随时间推移的平均排水量。如何添加平均排水量?
sy2.1 %>%
group_by(year(t)) %>%
arrange(desc(WaterDis)) %>%
mutate(t3 = 1:n()/n()*100) %>%
ggplot(aes(t3, WaterDis, colour=year(t),
group=year(t))) +
geom_line(size=1) +
scale_y_continuous(expand=c(0, 0)) +
scale_x_continuous(expand=c(0.001, 0)) +
labs(x="% of time", y="Water discharge (m3/s)", colour="Year") +
theme_classic()
2条答案
按热度按时间nnsrf1az1#
您可以先汇总数据,然后绘制汇总后的数据,也可以使用
stat_summary()
直接在绘图代码中汇总。下面我将通过一个示例数据集向您展示后一种方法。这是数据和基本图。
要找到这些线的平均值,可以使用
stat_summary()
并告诉它使用mean()
函数。就我个人而言,我使用这两种方法(这里显示的或之前总结的),这取决于情况。
作为最后一点,你对每条线的着色方案都是连续的,但是在你的例子中,数据确实应该被分割。我会通过引用
as.factor(year(t))
或factor(year(t))
而不是year(t)
来强制ggplot2
将你的线视为一个因子。dluptydi2#
首先计算每年的平均水排放量,然后突出显示要点。这是一个示例代码,我会与......进行相应的修改。
在这里,用红色标签突出显示与平均流量相对应的点或线。
sy2.1_avg
就是年平均水量。