恐怕我在做应该相对容易的事情时遇到了一些麻烦。我正在尝试有效地复制这个问题中的 ggplot 地图世界地图 - 绘制圆圈,与使用 Google 地理编码 API 输出的编号相关的圆圈大小。我向它传递了一堆格式可疑的自由文本位置数据(即它擅长什么),并得到了下表。
> 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 示例,我需要(至少)获取重复的 lat/lon 整体计数器,以便我知道伦敦何时有 65 人,但似乎我不能只使用 userlocations$location,因为此字段仅包含我首先传递给 Google 的非规范化自由文本; 只有 LON 和 LAT 似乎有有用的数据。
对于这个问题的简单性,我深表歉意,但如果有人能提供帮助,我将不胜感激。
如果您可以将代码整齐地格式化为两个向量 x(经度)和 y(纬度),那么您可以使用:
require(ggplot2)
ggplot(data.frame(x = x, y = y, circle_size = '\add a vector'), aes(x, y, size = circle_size) + geom_point()
我没有测试上述函数,但它应该产生与您提供的示例非常相似的图。