2012-11-30 59 views
0

我試圖做一個簡單的線圖,但我得到了以下錯誤:錯誤簡單GGPLOT2線圖

geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?

我想status.std在y軸,努力在x軸與status_measure區分兩個單獨的行。

下面是我的數據,我執行代碼:

df.effort <- structure(list(effort = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 
4L), .Label = c("never", "not very hard", "hard enough", "very hard" 
), class = "factor"), status.std = structure(c(-0.0234448237301297, 
0.0568346993679614, 0.0780165665285588, -0.0380394621882508, 
-0.135535917573711, 0.0128879641418037, 0.0806307867881565, -0.0104818763687783 
), .Names = c("never", "not very hard", "hard enough", "very hard", 
"never", "not very hard", "hard enough", "very hard")), status_measure = structure(c(1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("avrank.zmgs", "acent09l.zmgs" 
), class = "factor")), .Names = c("effort", "status.std", "status_measure" 
), row.names = c(NA, 8L), class = "data.frame") 

ggplot(data=df.effort, 
     aes(x=effort), y=status.std, colour=status_measure)) + geom_line() 

非常感謝任何幫助。我很遺憾,這個問題似乎不太可能對其他人有益。如果有一個標題編輯或一些讓它更普遍的東西,那將是非常棒的。

+2

按照錯誤消息中的說明:將'group = status_measure'添加到'aes()'調用。 (另外,你把你的代碼中的圓括號弄亂了,所以寫成它就不會運行。) – joran

+2

另外'y'定義在'aes()'之外,它需要在裏面定義。我認爲你所需要做的就是在努力結束時刪除''''。 –

回答

2

語法錯誤。需要移動括號,使AES(...)得到x和y參數(但不色彩的說法,因爲簡單地移動到最後生成您發佈的錯誤。)

ggplot(data=df.effort, 
     aes(x=effort, y=status.std), colour=status_measure) + geom_line() 

哪成功但沒有着色任何東西。而且無論如何都可以爲線條挑選顏色?我覺得顏色會堅持點,所以試試這個:

ggplot(data=df.effort, aes(x=effort, y=status.std))+ 
    geom_line()+ 
    geom_point(data=df.effort, 
     aes(x=effort, y=status.std, colour=status_measure)) 

或者,也許你想什麼joran發佈:

ggplot(data=df.effort, 
    aes(x=effort, y=status.std, colour=status_measure, group=status_measure)) + 
    geom_line() 

(我還以爲你試圖用geom_line內鏈路測量類別努力與顏色區分狀態措施。)

+0

感謝你和其他人,爲所有人+1 –