0

我有两个数据框 Data1 和 Data2。Data1 具有日期和价格以及代码。Data2 有日期和 Volume 和 Ticker。这两个数据帧的长度不同。也就是说,日期不能一对一匹配,所以我不能在没有插值的情况下将它们放入一个数据帧中。

我想在同一个图上绘制价格与日期的关系和数量与日期的关系,我猜这意味着不同的层和不同的比例。但我也想在股票上分面。

我如何在 ggplot2 中做到这一点而不诉诸 for 循环?

4

2 回答 2

1

查看您的数据会有所帮助,但我认为这应该可行。我为这两个数据集设置了不同的颜色,但这样做不会自动生成图例,并且 y 轴仅标有第一个变量。

ggplot(Data1, aes(Date, Price)) + facet_wrap(~ Ticker) + geom_line(color="blue") + geom_line(data=Data2, aes(date, Volume), color="red")
于 2012-09-27T19:58:42.367 回答
0

好的,这是我使用上面在评论中表达的想法的答案。

ticks=c('JNJ','IBM','MSFT','GOOG','CAT','BAC') 
N1=100 
N2=200
Data1=data.frame(x=runif(N1),y=cumsum(runif(N1)),
                 ticks=sample(ticks,N1,replace=T), tag='data1')
Data2=data.frame(x=runif(N2),y=cumsum(runif(N2)),
                 ticks=sample(ticks,N2,replace=T),tag='data2')
D=rbind(Data1,Data2)

ggplot(data=D,aes(x=x,y=y,colour=tag))+geom_line()+facet_wrap(~ticks)

这工作正常,但我仍然需要重命名变量。

于 2012-09-27T20:22:21.333 回答