地理空间可视化(Geospatial Visualization)
用 rds 与 sf 绘制地图
我们选择 GADM 提供的关于瑞典的数据作为示例。下载 R(sf) 中的 level1 的rds地图。( level 代表地图的精细程度)
另一份是瑞典统计局 SCB 提供的瑞典各省不同年龄的居民收入的开源统计数据。
【由于统计方式不同,有时需要对比character变量,用grep(pattern, X)
,会显示在向量X中包含pattern的项的位置。另外非英语字母也是大问题,例如瑞典语中的å,ä,ö,需要注意。】
下面这张地图显示了2016年瑞典各地18~29岁人的收入情况(单位:千瑞典克朗)
library(plotly)
library(sf)
rds <- readRDS('gadm36_SWE_1_sf.rds') # 读取地图
df <- read.csv("000000KD.csv") # 读取数据
rownames(df) <- df$region
rds$incomes <- df[rds$NAME_1, "young"]
plot_ly()%>%
add_sf(data=rds, split=~NAME_1, color=~incomes,
showlegend=F, colors="Blues")
【一眼就看出了贫富差距。。。有钱人都在东南的斯德哥尔摩附近】
用 GPS Visualizer 或者地图软件找到瑞典北部旅游城市基律纳(看极光的好地方)的坐标,在地图上单独标记
point <- c(67.855850, 20.226485)
plot_ly()%>%
add_sf(data=rds, split=~NAME_1, color=~incomes, showlegend=F, colors="Blues")%>%
add_markers(y=point[1],x=point[2],text="Kiruna")