2012-07-23 32 views
2

我有一個數據框,如下所示。我需要根據地區,日期作爲x軸和AveElapsedTime作爲y軸進行圖形化。使用ggplot從單個列中的多條線

 >avg_data 
      date region AveElapsedTime 
    1 2012-05-19 betasol   1372 
    2 2012-05-22 atpTax   1652 
    3 2012-06-02 betasol   1630 
    4 2012-06-02 atpTax   1552 
    5 2012-06-02  Tax   1552 
    6 2012-06-07 betasol   1408 
    7 2012-06-12 betasol   1471 
    8 2012-06-15 betasol   1384 
    9 2012-06-21 betasol   1390 
    10 2012-06-22 atpTax   1252 
    11 2012-06-23 betasol   1442 

如果我根據區域重新設置上面的那個,它將如下所示。如果特定日期沒有值(NA),則不應該繪圖。

  date atpTax betasol Tax 
    1 2012-05-19  NA 1372 NA 
    2 2012-05-22 1652  NA NA 
    3 2012-06-02 1552 1630 1552 
    4 2012-06-07  NA 1408 NA 
    5 2012-06-12  NA 1471 NA 
    6 2012-06-15  NA 1384 NA 
    7 2012-06-21  NA 1390 NA 
    8 2012-06-22 1252  NA NA 
    9 2012-06-23  NA 1442 NA 

我試過使用下面的ggplot命令,我得到geom_path錯誤。

ggplot(avg_data, aes(date, AveElapsedTime)) + geom_line(aes(col=region)) + opts(axis.text.x = theme_text(angle=90, hjust=1)) 
    geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic? 

    > str(avg_data) 
    'data.frame': 11 obs. of 3 variables: 
    $ date   : Factor w/ 9 levels "2012-05-19","2012-05-22",..: 1 2 3 3 3 4 5 6 7 8 ... 
    $ region  : Factor w/ 3 levels "atpTax","betasol",..: 2 1 2 1 3 2 2 2 2 1 ... 
    $ AveElapsedTime: int 1372 1652 1630 1552 1552 1408 1471 1384 1390 1252 ... 

請告知這個..

+1

我強烈懷疑你的日期得到變成一個因素,那'ggplot2'現在抱怨,因爲在x軸上每個點被視爲一個單獨的羣體。什麼是列的類(即'str(avg_data)')的結果?你可以使用'avg_data < - transform(avg_data,date = as.Date(date))'?或者,蠻力解決方案,將'group = region'添加到您的'geom_line'映射中。 – 2012-07-23 13:58:50

+0

它工作正常,如果我轉換爲日期。但是有沒有選擇顯示日期列中的所有日期? – Tamilan 2012-07-23 14:06:00

+0

您可以使用'+ scale_x_date(breaks = ...)'來指定它(請參閱'?scale_x_date'),或者您可以按照我的建議(上圖)和@Andrie(在他的答案中)使用'group = region' )。 – 2012-07-23 14:08:49

回答

8

隨着錯誤消息表明,你需要指定group。就像這樣:

ggplot(avg_data, aes(date, AveElapsedTime, colour=region, group=region)) + 
    geom_point() + geom_line() 

enter image description here

+0

你真的很搖滾..非常感謝.. – Tamilan 2012-07-23 14:15:28

+2

消息指出幾乎沒有什麼,一如既往在河。 – nccc 2013-02-20 21:51:28