我正在ggplot中添加點的choropleth地圖。 所以,以下的geom_map help docs什麼時候應該使用geom_map?
最後一個例子,我想出了這一點:
require(ggplot2)
require(maps)
set.seed(47)
county_map <- map_data("county", "washington")
names(county_map)[5:6] <- c("state", "id")
countyData <- data.frame(id = unique(county_map$id), value = rnorm(39))
map1 <- ggplot(countyData, aes(map_id = id)) +
geom_map(aes(fill = value), map = county_map, colour = "black") +
coord_map() +
expand_limits(x = county_map$long, y = county_map$lat)
print(map1)
這對於地區分佈圖的偉大工程。 (題外話,我很高興與map_data
功能)。但後來我嘗試加分
pointData <- structure(list(xx = c(-119.872483243387, -122.809038239929,
-122.143143065312
), yy = c(48.1320425447619, 46.7352071436801, 47.9911548514037
)), .Names = c("xx", "yy"), row.names = c(1746L, 7281L, 2692L
), class = "data.frame")
map1 + geom_point(mapping = aes(xx, yy), data = pointData)
我不能得到它的工作。我嘗試了很多變體,將group
設置爲NULL
,命名aes
參數等。沒有運氣。因此,我發現this question通過合併地圖數據和choropleth數據並使用geom_polygon
來完成同樣的工作,而且沒有問題,這看起來更直接。 (我花了一段時間纔開始編制ID映射,因爲我沒有意識到必須刪除region
列名才能成功使用id
,而第一種方法的語法對我來說似乎仍然很奇怪。)
所以,兩個問題:
- 它是如何可以從使用具有上述
geom_map
所示的方法不同的數據幀中添加點? - 更重要的是,使用
geom_map
而不是geom_polygon
方法有什麼優勢?
'geom_map'通常比'geom_polygon'快得多,因爲它可以以更高效的方式進行合併。 – hadley