2012-12-10 64 views
2

恐怕我在做一些相對容易的事情時遇到了一些麻煩。我正嘗試使用Google地理編碼API的輸出有效地複製此問題World Map - Plotting Circles, size of circle relevant to No of中的ggplot地圖。我向它傳遞了一堆格式可疑,自由文本的位置數據(即它的優點),並獲得了下表。將Google地理編碼輸出轉成R的地圖

> summary(userlocations) 
     ID    lon    lat    lonmin   
Min. : 1.0 Min. :-169.867 Min. :-82.86 Min. :-180.000 
1st Qu.: 618.8 1st Qu.: -91.815 1st Qu.: 33.72 1st Qu.: -91.956 
Median :1200.0 Median : -77.201 Median : 40.06 Median : -78.110 
Mean :1220.5 Mean : -49.884 Mean : 35.40 Mean : -51.709 
3rd Qu.:1804.2 3rd Qu.: -2.248 3rd Qu.: 45.52 3rd Qu.: -2.798 
Max. :2500.0 Max. : 174.886 Max. : 71.29 Max. : 174.771 
        NA's :643  NA's :643  NA's :643  
    lonmax    latmin   latmax   location 
Min. :-169.774 Min. :-90.00 Min. :-61.00 London : 65 
1st Qu.: -89.013 1st Qu.: 33.07 1st Qu.: 33.95 Canada : 31 
Median : -75.891 Median : 39.74 Median : 40.59 Atlanta : 25 
Mean : -47.521 Mean : 34.01 Mean : 36.86 England : 22 
3rd Qu.: -1.521 3rd Qu.: 44.37 3rd Qu.: 47.08 New York : 22 
Max. : 180.000 Max. : 71.23 Max. : 85.41 Las Vegas: 21 
NA's :643  NA's :643  NA's :643  (Other) :3286 

,而我知道不夠的,只是這樣做:

map(database="worldHires") 
points(userlocations$lon, userlocations$lat, pch=20) 

產生一個相當小的,醜陋的地圖。爲了重現ggplot的例子,我需要(至少)得到一個重複的緯度/經度的計數器,所以我知道何時有65位倫敦人,但似乎我不能只使用userlocations $ location,因爲這個字段只包含我首先傳給Google的非標準化自由文本;只有lon和lat似乎有用的數據。

對於這個問題的簡單性,我表示歉意,但如果有人能幫忙,我會非常感激。

+0

最終目標有點不清楚。您是否試圖根據每個位置的計數來繪製圓圈大小?如果是這樣,您需要將地點名稱與地圖上的一個點相關聯。如果您還沒有,可以使用google api來完成。 –

+0

你能提供一些樣品數據嗎? – Dominik

回答

0

,如果你能巧妙地格式化代碼爲兩個向量x(經度)和y(latitute),那麼你可以使用:

require(ggplot2) 
ggplot(data.frame(x = x, y = y, circle_size = '\\add a vector'), aes(x, y, size = circle_size) + geom_point() 

我沒有測試上述功能,但它應該產生與您提供的示例非常相似的情節。

相關問題