TL; DR:在绘图中逐步添加线条并在ggplot
中获取图例我有一组具有相同列名但数值不同的数据帧(请参阅底部的示例数据框)。
我经常需要在一张图上绘制这些数据框,标准差绘制为一条带,如下所示:
a = ggplot() + geom_ribbon(data = na.omit(m), aes(x = Time, ymin=SDmin, ymax=SDplus), alpha = 0.5, fill ="grey") +geom_line(data = na.omit(m), aes(x = Time, y = OD_scaled, color = "Growth")) + xlab("Time (H)") + ylab("OD Scaled")
a + geom_ribbon(data = na.omit(p), aes(x = Time, ymin=SDmin, ymax=SDplus), alpha = 0.5, fill ="grey") +geom_line(data = na.omit(p), aes(x = Time, y = OD_scaled, color = "photo")) + xlab("Time (H)") + ylab("OD Scaled")
我需要使用不同的数据组合(总是使用相同的数据帧格式)来做很多事情,所以我正在编写一个函数,可以以加法的方式将数据帧添加到绘图中:
plot.OD = function(df, Growth, graph_name) {
if(missing(graph_name)) {
graph_name = ggplot()
}
graph_name = graph_name + geom_ribbon(data = na.omit(df), aes(x = Time, ymin=SDmin, ymax=SDplus), alpha = 0.5, fill ="grey") +geom_line(data = na.omit(df), aes(x = Time, y = OD_scaled, color = Growth)) + xlab("Time (H)") + ylab("OD Scaled")
return(graph_name)
}
}
然后我使用:
调用该函数a = plot.OD(df1,"Mix")
a
#Adding a plot is done like this:
a + plot.OD(df2,"Photo",a)
如您所见,图例和颜色未自动分配。
所以我的问题是:如何改进此功能,以便图例自动更新?
请在此link找到两个示例数据框(使用保存功能保存它们)
Time R B W T Tprof Tmeas Tcool pH OD_scaled SD SDmin SDplus
0.002777778 0 0 0 0 21 21.13767 3.524333 0 2 0 2 2
0.005555556 0 0 0 0 21 21.12400 3.461333 0 NA NA NA NA
0.008333333 0 0 0 0 21 21.11833 3.396333 0 NA NA NA NA
0.011111111 0 0 0 0 21 21.11800 3.359333 0 NA NA NA NA
0.013888889 0 0 0 0 21 21.12767 3.269333 0 NA NA NA NA
0.016666667 0 0 0 0 21 21.12933 3.225667 0 NA NA NA NA
答案 0 :(得分:0)
dplyr绑定行最终成功了