我是R的新手,我正在研究制图分布在1963-2014年的数据。在我的数据中,我有一列表示年份(年),另一列表示一个月(月),另一列表示水中的镁浓度(Mg)。
我正在尝试绘制镁浓度随时间变化的散点图,但是如果我在x轴上绘制年份,在y上绘制镁,则最终得到12点(每月一个)每年彼此最高。我的数据称为water2,它产生 this graph。
是否有一种方法可以要求R在几个月和几年中散布这些镁原子点,实际上是使用两列来定义1个x轴?另外,是否可以创建一个新列来定义年份和月份?
答案 0 :(得分:0)
# dummy data
data <- data.frame(year = rep(1963:2014, each = 12),
month = rep(1:12, times = 52),
value = cumsum(rnorm(12*52)))
# convert it to a time-series object and plot it :
data.ts <- ts(data$value, start = 1963, frequency = 12)
plot.ts(data.ts, type = "p")
# Or you can ignore the time variables and just make a "index plot" with one variable :
plot(data$value, type = "p", xaxt = "n")
axis(1, at = seq(1, 12*52, by = 12), labels = 1963:2014)
# If you wanna merge year and month and generate a new variable :
data <- within(data, time <- paste(year, month, sep = "-"))
head(data)
year month value time
1 1963 1 -0.56389506 1963-1
2 1963 2 0.60636512 1963-2
3 1963 3 0.04645893 1963-3
4 1963 4 -0.76187300 1963-4
5 1963 5 -1.22781272 1963-5
6 1963 6 -2.33044086 1963-6