2015-11-26 17 views
1

我很努力地在R中使用ggplot繪製一些線。我需要連接每個線對(按INDEX分組)。 我使用的數據是:使用R和ggplot在GPS座標之間繪製單獨的線

INDEX | LATITUDE | LONGITUDE | VALUE 
1  53,071118 -6,063786 40.3 
1  53,076478 -6,067592 40.3 
2  53,071118 -6,063786 60.7 
2  53,099204 -6,067235 60.7 

,代碼:

require(ggmap); 
require(ggplot2); 
options(warn=-1) 

mydata = read.delim2("mydata.csv", TRUE, "\t") 
df=as.data.frame(mydata) 

City="Dublin, Ireland" 

baseMap = get_map(location = City, zoom = 11, maptype = "terrain") 
map <- ggmap(baseMap) + 
    geom_path(aes(x=LONGITUDE, y=LATITUDE, group=INDEX), data=df, alpha=0.2) 
map 

在最後兩行的錯誤是「錯誤:供給連續尺度離散值」。 我該如何克服?

編輯: 我插入

df$LATITUDE=as.numeric(as.character(df$LATITUDE)) 
df$LONGITUDE=as.numeric(as.character(df$LONGITUDE)) 
df$INDEX=as.numeric(as.character(df$INDEX)) 

,並開始工作。請記住,座標必須是點,而不是逗號。 the lines are connected to each other

+2

我想你想檢查df中的類。 'str(df)'會告訴你類。你可能有因素,雖然ggplot期望數字。 – jazzurro

+0

謝謝,情況就是這樣!我在代碼中添加了df $ LATITUDE = as.numeric(df $ LATITUDE) df $ LONGITUDE = as.numeric(df $ LONGITUDE) df $ INDEX = as.numeric(df $ INDEX)現在運行。現在,我必須明白爲什麼沒有任何東西被繪製到地圖上。 – Goshutu

+0

不客氣。 – jazzurro

回答

0

我只需要添加

df$LATITUDE=as.numeric(as.character(df$LATITUDE)) 
df$LONGITUDE=as.numeric(as.character(df$LONGITUDE)) 
df$INDEX=as.numeric(as.character(df$INDEX)) 

以及與所述數據替換 '' ''。