我试图绘制9个不同面板的9个站(A到I)的时间序列月平均温度数据。但我使用动物园来保持月份格式。我的简单数据集如下所示。
+--------+------+------+------+------+ | Time | A | B | C | D | +--------+------+------+------+------+ | Jan-84 | 28.2 | 28.2 | 27.5 | 18.4 | | Feb-84 | 29.5 | 26.6 | 27.9 | 17.4 | | Mar-84 | 30.7 | 30.3 | 30.1 | 19.5 | | Apr-84 | 30.5 | 33.2 | 29.9 | 20.7 | | May-84 | 33.2 | 30.1 | 30.2 | 21 | | Jun-84 | 31.6 | 28.3 | 28.5 | 16.9 | | Jul-84 | 31.5 | 28.6 | 27.7 | 16.8 | | Aug-84 | 32.5 | 28.9 | 27.4 | 18.5 | | Sep-84 | 34 | 28.1 | 29.4 | 18.3 | | Oct-84 | 32.8 | 28.8 | 28.8 | 17.2 | | Nov-84 | 28.9 | 31.6 | 29 | 17.8 | | Dec-84 | 30.6 | 26.9 | 28.1 | 18.9 | | Jan-85 | 31.8 | 28.6 | 29.3 | 18.2 | | Feb-85 | 31.3 | 29.6 | 30.4 | 19.5 | | Mar-85 | 32 | 31.1 | 31.4 | 19.7 | +--------+------+------+------+------+
可以通过以下代码访问此数据集。
structure(list(Time = structure(c(6L, 4L, 10L, 1L, 12L, 9L, 8L,
2L, 15L, 14L, 13L, 3L, 7L, 5L, 11L), .Label = c("Apr-84", "Aug-84",
"Dec-84", "Feb-84", "Feb-85", "Jan-84", "Jan-85", "Jul-84", "Jun-84",
"Mar-84", "Mar-85", "May-84", "Nov-84", "Oct-84", "Sep-84"), class = "factor"),
A = c(28.2, 29.5, 30.7, 30.5, 33.2, 31.6, 31.5, 32.5, 34,
32.8, 28.9, 30.6, 31.8, 31.3, 32), B = c(28.2, 26.6, 30.3,
33.2, 30.1, 28.3, 28.6, 28.9, 28.1, 28.8, 31.6, 26.9, 28.6,
29.6, 31.1), C = c(27.5, 27.9, 30.1, 29.9, 30.2, 28.5, 27.7,
27.4, 29.4, 28.8, 29, 28.1, 29.3, 30.4, 31.4), D = c(18.4,
17.4, 19.5, 20.7, 21, 16.9, 16.8, 18.5, 18.3, 17.2, 17.8,
18.9, 18.2, 19.5, 19.7)), .Names = c("Time", "A", "B", "C",
"D"), class = "data.frame", row.names = c(NA, -15L))
我使用以下代码将数据获取到动物园结构,然后绘制。 库(动物园)
dat$Time <- as.yearmon(dat$Time,format="%b-%y")
然后使用以下代码进行绘图。
plot(dat, col=Rainbow)
我需要在X轴上标记年份,在Y轴上标记温度值。我找到了一些方法来绘制这个,但是这些例子在系列在单独的ts对象中并在组合后绘图时可用。但数据在数据框中可用作变量。我是R的新手并且感谢任何人都可以帮助我。感谢
答案 0 :(得分:1)
如果你制作一个合适的zoo
对象,我认为你会得到更好的结果。例如,使用原始dat
zz <- zoo(dat[-1], as.yearmon(dat$Time,format="%b-%y"))
plot(zz)
答案 1 :(得分:0)
使用完整的数据集,您可以传递X = dat [2:9]。对于9个绘图,使得par(mfrow = c(9,1))。
par(mar=c(1,1,1,1))
par(mfrow=c(4,1))
apply(X = dat[2:5],MARGIN = 2,FUN = plot,x=dat$Time,type="l",col="blue",xlab="Years",ylab="temperature")