我有两个数据框 Data1 和 Data2。Data1 具有日期和价格以及代码。Data2 有日期和 Volume 和 Ticker。这两个数据帧的长度不同。也就是说,日期不能一对一匹配,所以我不能在没有插值的情况下将它们放入一个数据帧中。
我想在同一个图上绘制价格与日期的关系和数量与日期的关系,我猜这意味着不同的层和不同的比例。但我也想在股票上分面。
我如何在 ggplot2 中做到这一点而不诉诸 for 循环?
查看您的数据会有所帮助,但我认为这应该可行。我为这两个数据集设置了不同的颜色,但这样做不会自动生成图例,并且 y 轴仅标有第一个变量。
ggplot(Data1, aes(Date, Price)) + facet_wrap(~ Ticker) + geom_line(color="blue") + geom_line(data=Data2, aes(date, Volume), color="red")
好的,这是我使用上面在评论中表达的想法的答案。
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)
这工作正常,但我仍然需要重命名变量。