2013-02-04 120 views
0

我有一個文本文件格式GGPLOT2覆蓋散點圖

Date,ufov_mean,ufov_stdev,ufov_cov,ufov_int_pl,ufov_int_min,ufov_diff,ufov_nema_int,ufov_nema_dif,cfov_mean,cfov_stdev,cfov_cov,cfov_int_pl,cfov_int_min,cfov_diff,cfov_nema_int,cfov_nema_dif 
24/01/11,5187.10,110.10,2.12,8.48,-6.46,7.25,7.40,3.76,5177.55,104.03,2.01,8.68,-6.29,7.25,7.40,3.76     
26/01/11,5182.35,106.65,2.06,6.50,-6.36,7.87,6.42,4.09,5170.29,100.45,1.94,6.45,-5.42,7.54,5.91,3.92     
28/01/11,5183.88,104.99,2.03,7.31,-6.48,9.63,6.87,5.06,5178.99,101.03,1.95,6.16,-6.39,9.08,6.28,4.76     
31/01/11,5183.55,98.35,1.90,5.66,-6.30,7.92,6.00,4.12,5172.41,96.00,1.86,5.71,-5.81,7.92,5.76,4.12     
02/02/11,5183.16,104.20,2.01,6.83,-6.43,7.47,6.61,3.88,5176.24,98.74,1.91,6.06,-5.65,7.47,5.84,3.88     
03/02/11,5184.14,106.77,2.06,8.16,-5.98,7.89,6.99,4.11,5179.31,100.62,1.94,7.45,-5.89,7.89,6.62,4.11 

我希望做的是積數這些參數的散點圖在給定的日期範圍。我可以用足夠

qc<-data.frame(read.csv("tc_h1_qc", header=T)) 
qc$Date = as.Date(qc$Date, format='%d/%m/%y') 
Sys.Date() 
Sys.Date()-30 

p <- ggplot(qc,aes(x=Date,y=cfov_cov)) + geom_point(shape=1,colour="red") + geom_line(colour="red") + theme_bw() + scale_x_date(labels = date_format("%d/%m/%y"), limits = c(Sys.Date()-30, Sys.Date())) 

如何覆蓋等參數,每一個不同的geom_point顏色,創造一個適當的傳說(在風格上類似http://docs.ggplot2.org/0.9.3/facet_grid-27.png傳說繪製的這些簡單的一個,雖然我不能看到我可以使用我的數據幀結構方面)?

+1

您是否嘗試過使用重塑包來融化data.frame?我認爲這將是採取的方法。您要查找的表單是第一列中的日期,第二列中的column_name和第三列中的值。 – seandavi

+0

在上面的數據中,每個日期只有1個觀測值。這是一個測試數據嗎? – Arun

+0

@seandavi - 這似乎是一個明智的解決方案,感謝指針。 – moadeep

回答

5

這聽起來像你只是想在單個散點圖上繪製幾個變量,每個變量都用顏色編碼。這對於'ggplot2'和'reshape2'軟件包來說相當容易。

第1步:熔化您的數據,所有值都在一列中。在這種情況下,我只是選擇[日期]列(作爲關鍵字),第4列到第7列進行打印,因爲它們具有相似的值範圍。

library(reshape2)  
plot_Data <- melt(qc[,c(1,4:7)], id="Date") 

這看起來像這樣:

  Date  variable value 
1 2011-01-24  ufov_cov 2.12 
2 2011-01-26  ufov_cov 2.06 
3 2011-01-28  ufov_cov 2.03 
4 2011-01-31  ufov_cov 1.90 
5 2011-02-02  ufov_cov 2.01 
6 2011-02-03  ufov_cov 2.06 
7 2011-01-24 ufov_int_pl 8.48 
8 2011-01-26 ufov_int_pl 6.50 
9 2011-01-28 ufov_int_pl 7.31 
10 2011-01-31 ufov_int_pl 5.66 
11 2011-02-02 ufov_int_pl 6.83 
12 2011-02-03 ufov_int_pl 8.16 
13 2011-01-24 ufov_int_min -6.46 
14 2011-01-26 ufov_int_min -6.36 
15 2011-01-28 ufov_int_min -6.48 
16 2011-01-31 ufov_int_min -6.30 
17 2011-02-02 ufov_int_min -6.43 
18 2011-02-03 ufov_int_min -5.98 
19 2011-01-24 ufov_diff 7.25 
20 2011-01-26 ufov_diff 7.87 
21 2011-01-28 ufov_diff 9.63 
22 2011-01-31 ufov_diff 7.92 
23 2011-02-02 ufov_diff 7.47 
24 2011-02-03 ufov_diff 7.89 

步驟2:現在,我們可以很容易地繪製我們的數據,使用[日期]列的 'X' 的值,而[價值]列作爲'y'值。我們分成組,它們上色,並通過指定的顏色​​添加一個傳說,就像這樣:

library(ggplot2) 
ggplot(plot_Data, aes(x=Date, y=value, col=variable)) + geom_point() 

您應該能夠從這裏調整,以滿足您的需求。