条形图:更改 x 轴并添加线条
我有一个动物园,其每日数据如下所示: <代码>>头(阿莫罗尔)
1973-10-02 1973-10-03 1973-10-04 1973-10-05 1973-10-06 1973-10-07
183.9 208.2 153.7 84.8 52.5 35.5
我想绘制年度总计和移动平均值,所以我这样做了:
y<-apply.yearly(almorol, FUN=sum)
plot(y, main="年度总量 - 塔古斯 (Almorol)",ylab="Q (m3/s)")
lines(rollapply(y, 10,mean, na.rm=TRUE), col="red", lwd=2)
效果很好,但由于数据不连续,折线图不正确。如果我用点来做的话很难遵循,所以我想做一个条形图。但是,当我执行 barplot(y)
时,x 轴以 yy-mm-dd 格式显示,而不仅仅是年,并且我无法添加带有移动平均值的线(它没有给出错误它只是不出现)。
感谢您的帮助!
编辑:<代码>> y
1973年12月31日 1974年12月31日 1975年12月31日 1976年12月31日
19224.20 103766.30 72180.90 55939.80
1977年12月31日 1978年12月31日 1979年12月31日 1980年12月31日
215905.00 231014.21 319481.02 58979.84
1981-12-31 1982-12-31 1983-12-31 1984-12-31
32931.17 67989.06 83920.62 99431.75
1985年12月31日 1986年12月31日 1987年12月31日 1988年12月31日
161357.10 82910.87 101154.81 147541.80
1989年12月31日 1990年12月31日 1991年12月31日 1992年12月31日
137684.21 134974.39 89039.02 20774.72
1993年12月31日 1994年12月31日 1995年12月31日 1996年12月31日
58916.95 55187.38 52361.77 271064.34
1997年12月31日 1998年12月31日 1999年12月31日 2000年12月31日
220510.88 125116.62 42170.95 103915.99
2001-12-31 2002-12-31 2003-12-31 2004-12-31
244513.59 66811.15 167458.93 67223.66
2005-12-31 2006-12-31 2007-12-31 2008-12-31
8906.31 116874.33 79105.30 40142.61
2009-12-31 2010-12-31 2011-05-31
43835.34 161491.77 73093.06
I have a zoo with daily data that looks like this:> head(almorol)
1973-10-02 1973-10-03 1973-10-04 1973-10-05 1973-10-06 1973-10-07
183.9 208.2 153.7 84.8 52.5 35.5
I want to plot annual totals and a moving average so I did:
y<-apply.yearly(almorol, FUN=sum)
plot(y, main="Annual totals - Tagus (Almorol)",ylab="Q (m3/s)")
lines(rollapply(y, 10, mean, na.rm=TRUE), col="red", lwd=2)
Which works fine, but because the data is not continuous a line graph is not correct. If I do it with points is hard to follow so I wanted to do a barplot. However when I do barplot(y)
the x axe appears in the format yy-mm-dd instead of just years and I can't add a line with the moving average (it doesn't give an error it just doesn't appear).
Thanks for helping!
edit: > y
1973-12-31 1974-12-31 1975-12-31 1976-12-31
19224.20 103766.30 72180.90 55939.80
1977-12-31 1978-12-31 1979-12-31 1980-12-31
215905.00 231014.21 319481.02 58979.84
1981-12-31 1982-12-31 1983-12-31 1984-12-31
32931.17 67989.06 83920.62 99431.75
1985-12-31 1986-12-31 1987-12-31 1988-12-31
161357.10 82910.87 101154.81 147541.80
1989-12-31 1990-12-31 1991-12-31 1992-12-31
137684.21 134974.39 89039.02 20774.72
1993-12-31 1994-12-31 1995-12-31 1996-12-31
58916.95 55187.38 52361.77 271064.34
1997-12-31 1998-12-31 1999-12-31 2000-12-31
220510.88 125116.62 42170.95 103915.99
2001-12-31 2002-12-31 2003-12-31 2004-12-31
244513.59 66811.15 167458.93 67223.66
2005-12-31 2006-12-31 2007-12-31 2008-12-31
8906.31 116874.33 79105.30 40142.61
2009-12-31 2010-12-31 2011-05-31
43835.34 161491.77 73093.06
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
条形图中的 x 坐标与数据的原始比例无关。您可以查看 barplot 函数的返回值来了解 x 轴的范围(看不到该线的可能原因是它完全绘制在屏幕之外)。
TeachingDemos 包中的 updateusr 函数可用于更改坐标比例以匹配您要添加的数据。
另一种替代方法是使用带有
type='h'
的绘图函数(并查看?par< 中的
lwd
和lend
选项/code>) 使用感兴趣的坐标创建您自己的条形图,然后添加参考线。The x coordinates in a barplot are not related to the original scale of the data. You can look at the return value of the barplot function to see what the range of the x axis is (the probable reason for not seeing the line is it plotted completely off the screen).
The updateusr function in the TeachingDemos package can be used to change the coordinate scale to match the data that you want to add.
Another alternative is to use the plot function with
type='h'
(and look atlwd
andlend
options in?par
) to create your own barplot like plot using the coordinates of interest, then add your reference line.