我将使用R中的ggplot2生成一个时间序列图,用于展示每日天气数据的最高温度线,以便在同一图中比较不同年份的数据。以下是我的数据格式:
我的方法在这个程度上似乎可行:
(head)
date value year DayOfYear
1 2013-01-01 9 2013 1
2 2013-01-02 10 2013 2
3 2013-01-03 12 2013 3
4 2013-01-04 10 2013 4
5 2013-01-05 10 2013 5
6 2013-01-06 9 2013 6
(tail)
date value year DayOfYear
405 2014-02-09 8 2014 40
406 2014-02-10 9 2014 41
407 2014-02-11 8 2014 42
408 2014-02-12 9 2014 43
409 2014-02-13 8 2014 44
410 2014-02-14 12 2014 45
我的方法在这个程度上似乎可行:
Gatmax$Date <- as.Date(Gatmax$date, '%d/%m/%Y')
Gatmax <- transform( Gatmax,
Year = format(Date, '%Y'),
DayOfYear = as.numeric( format(Date, '%j')))
但是当我使用ggplot2来绘制数据时:
library("ggplot2")
ggplot(Gatmax, aes(DayOfYear, value)) +
geom_line(aes(colour = year)) +
geom_point(aes(shape = year)) +
scale_shape_identity()
I get the following error:
Error in seq.default(from = best$lmin, to = best$lmax, by = best$lstep) :
'from' must be of length 1
奇怪的是,一位有经验的R语言用户正在帮助我,但是使用完全相同的脚本生成绘图时,他没有出现错误。唯一的区别是他们在Windows上使用R而我在Linux上使用。虽然我认为R是跨平台的,但我不认为这是操作系统问题。
非常感谢任何可以提供成功生成绘图的帮助。
dput
命令(输出一个 'Gatmax' 版本的样例)来展示你在ggplot
中使用的数据。通过谷歌搜索你的错误信息,可以找到 这个链接,它可能表明你所使用的数据与你发布的样例不同。 - Henrik