用因子向量作为x轴在一个图中绘制2个向量

时间:2012-02-22 10:35:42

标签: r plot

我想将2个整数[]向量: a,b 绘制到因子[]向量: c ,使用以下代码:

plot(c,a,type='l',col="blue",xlab="foo",ylab="bar")
lines(c,b,col="red")

向量c包含字符串,例如:“2007-09-30 - 2007-10-06”。

我使用这种方法遇到两个问题:

  1. 第一次调用将矢量绘制为点,即使我已指定type='l'并忽略参数col="blue"
  2. 矢量c相当大,R试图将每个元素作为x轴上的离散点,这是相当可怕的。
  3. 渲染输出如下所示: enter image description here

    有没有人就如何解决我的问题提出建议?

    感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用ggplot2并使用date课程而不是factor

library(ggplot2)
dat <- data.frame(c=as.Date("2007-06-13")+0:1399, a=rnorm(1400,30,8), b=rnorm(1400,60,10))
ggplot(dat) + geom_path(aes(x=c,y=a),col=I("red")) + geom_path(aes(x=c,y=b),col=I("blue"))

或者更好的是,如果您将数据放在长格式中:

datLong <- melt(dat,id="c")
qplot(c,value,data=datLong,geom="path",colour=variable)

plot

答案 1 :(得分:2)

很抱歉,现在没时间做一个例子,但这是我的微弱建议:

将您的factorc转换为Date类,至少是为了绘图。见?Date