我有大约 90 年的每日数据,我想绘制长期平均值,以及我的调查期间(2014-2018)每年的单独线条。数据如下:
> head(dischg)
date ddmm year cfs daymo
1 1-Jan-27 01-Jan 1927 715 2018-01-01
2 2-Jan-27 02-Jan 1927 697 2018-01-02
3 3-Jan-27 03-Jan 1927 715 2018-01-03
4 4-Jan-27 04-Jan 1927 796 2018-01-04
5 5-Jan-27 05-Jan 1927 825 2018-01-05
6 6-Jan-27 06-Jan 1927 865 2018-01-06
我已经能够很容易地绘制出长期平均值:
p1 <- ggplot(dischg, aes(x=daymo, y=cfs)) +
stat_summary(fun.data = "mean_cl_boot", geom = "smooth", colour = "blue")
...但我需要一些帮助来绘制年份的子集。我尝试使用“子集”
p2 <- p1 +
ggplot (subset(dischg, year %in% c(2014:2018)), aes(x=daymo, y=cfs, linetype=year)) +
geom_line() +
scale_colour_brewer(palette="Set1")
但我收到了这个错误:
错误:不知道如何将 o 添加到绘图中
一次只添加一年会更明智吗?当需要绘制五年的数据时,这似乎有点麻烦。
感谢您提供样本数据,但遗憾的是我无法获取ggplot
代码来运行您提供的示例数据,因此我将使用内置的 R 数据集。但概念是相同的。
问题是您正在尝试添加ggplot
到已经属于该类的对象ggplot
。一旦你将你的对象初始化为ggplot
对象,你不需要调用ggplot
每次你想添加一个图层时。例如,如果我尝试以下操作,我会得到与您相同的错误:
p1 <- ggplot(mtcars, aes(x=hp,y=cyl)) + geom_point()
p2 <- p1 + ggplot(mtcars[mtcars$am == 1, ], aes(x = hp, y = cyl)) + geom_line()
正如我的评论中提到的,如果您想添加具有单独数据的另一层(在您的情况下geom_line
)您可以通过将数据直接放入geom_
称呼。在你的情况下,你会做类似的事情:
p1 <- ggplot(mtcars, aes(x=hp,y=cyl)) + geom_point()
p2 <- p1 + geom_line(data = mtcars[mtcars$am == 1, ])
p2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)