2012-09-27 20 views
0

我有兩個數據幀Data1和Data2。 Data1具有日期和價格以及代碼。 Data2具有日期和音量以及Ticker。兩個數據幀長度不同。也就是說,日期不能一對一地匹配,所以我不能將它們放入一個沒有插值的數據框中。如何在ggplot2中使用多面數據組和多組數據?

我想繪製價格與日期和交易量對日期在同一個情節,我猜意味着不同的層次和不同的尺度。但我也想面向股票代碼。

如何在ggplot2中做到這一點,而不訴諸於循環?

+0

你能否給我們提供來自這兩個數據集的樣本數據,這樣我們實際上可以使用一個可重複的例子?請將'dput(head(Data1))'和'dput(head(Data2))'的結果粘貼到您的答案中。 – Maiasaura

+0

我實際上不能這樣做,因爲我所描述的是我真正在做的簡化,它是私人數據。 – Dave31415

+0

@ Dave31415生成隨機數據並給出構成名稱的列。 – csgillespie

回答

1

看到你的數據會有幫助,但我認爲這應該工作。我將這兩個數據集做成了不同的顏色,但以這種方式做事不會自動生成圖例,並且y軸僅標註第一個變量。

ggplot(Data1, aes(Date, Price)) + facet_wrap(~ Ticker) + geom_line(color="blue") + geom_line(data=Data2, aes(date, Volume), color="red") 
+0

是的,這似乎工作,並給出相同的結果。 – Dave31415

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) 

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

相關問題