2012-04-05 118 views
4

我有一張美國地圖和我想繪製的長,拉特列表。一旦我得到這個工作,我也想切換到「世界」地圖。生成地圖,但地圖上不顯示點。 TSV文件的第一行包含以下標題:繪製經度和​​緯度點的R地圖

LONG{tab}LAT
R似乎正在讀取「流量」表中的「確定」。我究竟做錯了什麼?

 
library("maps") 

traffic = read.table("C:/temp/traffic_10.40.tsv", header=T, sep="\t") 
png(filename="C:/temp/usa.png", width=850, height=600, bg="white") 
map('state', plot = TRUE, fill = FALSE, col = palette()) 
title("Destinations") 
points(x=traffic$LONG,y=traffic$LAT,col='red',cex=0.75) 
dev.off() 

編輯

 
> dput(traffic) 
structure(list(LONG = c(47.6218, 32.7942, 34.1121, 40.0068, 47.6218, 
33.9553, 33.7629, 40.0068, 39.05, 38.1075, 33.7629, 32.769, 37.3857, 
29.4576, 34.1674, 38.8147, 32.7942, 31.1429, 40.3254, 30.3059, 
38.2248, 47.6218, 33.9553, 38.1075, 27.1943, 29.4576, 30.5175, 
38.5668, 42.6657, 40.2982, 32.7539, 40.6698, 47.6742, 32.7942, 
47.6218, 35.8219), LAT = c(-122.35, -96.7653, -118.411, -75.1347, 
-122.35, -83.3937, -84.4226, -75.1347, -77.4833, -122.264, -84.4226, 
-96.5998, -122.026, -98.5054, -84.8014, -77.0647, -96.7653, -81.471, 
-78.9195, -97.7505, -85.7412, -122.35, -83.3937, -122.264, -80.2432, 
-98.5054, -97.6721, -121.467, -73.799, -111.698, -97.3363, -73.9438, 
-122.115, -96.7653, -122.35, -78.6588)), .Names = c("LONG", "LAT" 
), class = "data.frame", row.names = c(NA, -36L)) 

而且,我是A R新手,都試過,因爲我不知道該怎麼尋找究竟對谷歌與有限的成功發現這一點。

+1

很難說沒有訪問您的數據。任何方式發佈.tsv或png在線? – 2012-04-05 16:12:06

+0

或...在線發佈數據?最簡單的方法是複製並粘貼'dput(traffic)'的結果;或者如果它是一個大數據集,請嘗試'dput(traffic [1:10,]' – 2012-04-05 16:16:56

+0

您的美國地圖看起來像是PNG文件,沒有與之相關的地理座標,因此無法知道給出經緯度點,它甚至可能是一個有趣的投影,或者阿拉斯加可能被縮小到加利福尼亞海岸的緊湊性和夏威夷在海灣地區,你需要一個適當的地理參考光柵文件,或知識的投影和座標的PNG – Spacedman 2012-04-05 16:21:37

回答

7

問題出在你的數據集而不是你以後的代碼。

第一點有一個座標47.6218和另一個-122.35Latitudes不能超出範圍[-90,90]度,因此longitude必須是-122.35和緯度47.6218,與您的數據集相反。 This is slightly north of the Seattle Space needle

x(水平)傳統上是經度或東向; y(垂直)傳統上是緯度或北緯

+0

謝謝。這是有道理的。我調整了我的代碼(正確的方式),它運行的很好! – jftuga 2012-04-06 12:45:58

1

其中一種選擇是使用googleVis。你可以畫出你的點Google-Maps風格。

+0

我需要輸出到PNG,所以我認爲這不會有幫助。 – jftuga 2012-04-05 17:09:02

1

固定。我換了$ LAT和$ LONG。現在它完美地工作。

 
points(x=traffic$LAT,y=traffic$LONG,col='red',cex=0.75)