1

我正在尝试使用 matplot() 将日期添加到多个数据系列的图表中,但我找不到解决方案。任何帮助将不胜感激。

例如,让我们创建一个包含 2 个数据系列的简单矩阵:

> a <-matrix(1+rnorm(20),10,2)
> a
            [,1]        [,2]
 [1,]  2.7540781  1.31428162
 [2,]  2.4630120  1.04378781
 [3,]  1.7556846 -0.08914417
 [4,]  0.9446534  1.59287973
 [5,]  1.2365692  1.28315556
 [6,] -0.7582962 -0.17436644
 [7,]  1.6519822  3.30782961
 [8,]  0.3979254  0.38058894
 [9,]  1.6826193  1.47889565
[10,]  0.1343743  0.68098755

接下来,让我们创建一个日期系列:

> dates <- data.frame(days = seq(as.Date('2013-01-01'), by = 'days', length = 10))
> dates
         days
1  2013-01-01
2  2013-01-02
3  2013-01-03
4  2013-01-04
5  2013-01-05
6  2013-01-06
7  2013-01-07
8  2013-01-08
9  2013-01-09
10 2013-01-10

知道如何绘制系列“a”以使其与日期系列“日期”相对应吗?具体来说,我希望能够通过 matplot() 进行绘图,例如:

matplot(a,type="l")

系列“日期”以标准方式沿着底部运行。谢谢!

4

1 回答 1

0

我以前从未听说matplot过,最常用的图形系统是基本的(plotlines等)latticeggplot2. 我会使用其中之一,因为用户代码和示例的数量非常大。

我更喜欢使用ggplot2,请注意需要稍微调整数据结构以使其顺利工作ggplot2

library(ggplot2)
library(reshape2)
dat = data.frame(dates, a)
dat_melt = melt(dat, id.vars = "days")
ggplot(dat_melt, aes(x = days, y = value, color = variable)) + geom_line()

在此处输入图像描述

于 2013-04-28T19:04:58.400 回答