通过散点图中的2个参数定义X轴

时间:2018-10-04 15:05:04

标签: r plot

我是R的新手,我正在研究制图分布在1963-2014年的数据。在我的数据中,我有一列表示年份(年),另一列表示一个月(月),另一列表示水中的镁浓度(Mg)。

我正在尝试绘制镁浓度随时间变化的散点图,但是如果我在x轴上绘制年份,在y上绘制镁,则最终得到12点(每月一个)每年彼此最高。我的数据称为water2,它产生 this graph

是否有一种方法可以要求R在几个月和几年中散布这些镁原子点,实际上是使用两列来定义1个x轴?另外,是否可以创建一个新列来定义年份和月份?

1 个答案:

答案 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