我正在尝试使用table:
为country.txt文件创建热图Region Value
Europe 5
Africa 6
America 7
Asia 8
我知道我可以将地图视为:
map.world <- map_data(map = "world")
mapCountryData(sPDF,nameColumnToPlot = 'continent')
如何将数据应用于地图?即我希望这个具有最高价值的大陆让我们说绿色,最低值的continetn是红色的。
答案 0 :(得分:2)
这是一个可以使用的简化大陆shapefile。我会更改投影并移除antarctica以获取我要放入出版物的内容,但这会给你一个开始:
library(rgdal)
library(rgeos)
library(ggplot2)
library(httr)
url <- "https://gist.githubusercontent.com/hrbrmstr/91ea5cc9474286c72838/raw/f3fde312c9b816dff3994f39f2bcda03209eff8f/continents.json"
stop_for_status(GET(url, write_disk("continents.json")))
continents <- readOGR("continents.json", "OGRGeoJSON")
continents_map <- fortify(continents, region="CONTINENT")
data <- read.table(text="id value
Europe 5
Africa 6
America 7
Asia 8", header=TRUE, stringsAsFactors=FALSE)
gg <- ggplot()
gg <- gg + geom_map(data=continents_map,
map=continents_map,
aes(x=long, y=lat, map_id=id),
color="black")
gg <- gg + geom_map(data=data,
map=continents_map,
aes(map_id=id, fill=value),
color="black")
gg <- gg + scale_fill_distiller("PuBu") # needs latest ggplot2
gg <- gg + coord_equal()
gg <- gg + theme_bw()
gg <- gg + labs(x=NULL, y=NULL)
gg <- gg + theme(panel.border=element_blank())
gg <- gg + theme(panel.grid=element_blank())
gg
以下是shapefile中表示的各大洲的名称:
continents@data$CONTINENT
## [1] Asia North America Europe Africa South America
## [6] Oceania Australia Antarctica