2

比較的簡単なはずのことをするのに苦労しているのではないかと心配しています。この質問World Map - Plotting Circles, size of circle related to No of using output from the Google geocode API からggplot マップを効果的に複製しようとしています。形式が疑わしいフリーテキストの位置データ (つまり、何が得意なのか) を渡して、次の表を取得しました。

> 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 だけが有用なデータを持っているようです。

簡単な質問で申し訳ありませんが、どなたかお役に立てれば幸いです。

4

1 に答える 1

0

コードを 2 つのベクトル x (経度) と y (緯度) にきれいにフォーマットできる場合は、次を使用できます。

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

上記の関数はテストしませんでしたが、提供された例と非常によく似たプロットが生成されるはずです。

于 2012-12-25T07:55:03.390 に答える