我正在尝试创建一张美国地图,其中包含各州的收入点。
例如我有这些数据:
state capital_name lat long women earning
1 Alabama Montgomery 32.36154 -86.27912 621 832
2 Alaska Juneau 58.30194 -134.41974 797 1008
3 Arizona Phoenix 33.44846 -112.07384 669 827
4 Arkansas Little Rock 34.73601 -92.33112 610 703
现在这是我的代码:
mapPoints <- ggmap(map) +
geom_point(aes(x = lat, y = long, size = sqrt(women_median_weekly_earnings)),
data = join2, alpha = .5 ,color="darkred") +
scale_size(range=c(3,20))
map <- get_map(location = 'usa', zoom = 4)
mapPoints
这是我得到的:
如您所见,这些点不在地图上。 代码有什么问题?
我该如何解决?
非常感谢
答案 0 :(得分:0)
你在审美方面犯了一个错误; y是纬度(南北),x经度(西 - 东),而不是相反。
此处,您的代码正在查看Alabama
,32.36154
上的x axis
和-86.27912
上的y axis
。不在提供的地图范围内,因此这一点将不可见。
您应该通过撤消lat
中的long
和aes
来完成工作。
此外,zoom = 3
似乎是获得地图中所有点的正确缩放
library(ggmap)
map <- map<-get_map(location='united states', zoom=3, maptype = "terrain",
source='google',color='color')
mapPoints <- ggmap(map) +
geom_point(aes(y = lat, x = long, size = sqrt(earning)),
data = df, alpha = .5 ,color="darkred") +
scale_size(range=c(3,20))
mapPoints
<强> 数据:的强>
df <- read.table(text='state capital_name lat long women earning
Alabama Montgomery 32.36154 -86.27912 621 832
Alaska Juneau 58.30194 -134.41974 797 1008
Arizona Phoenix 33.44846 -112.07384 669 827
Arkansas LittleRock 34.73601 -92.33112 610 703',
header = T, quote = '"')