我正在尝试使用
我从这里读取了尼泊尔各地区的
我在这里和这里看到了一些示例。
这是我的做法:
R
、geojson
和ggplot2
制作尼泊尔各地区的人类贫困指数的区域分布图。我从这里读取了尼泊尔各地区的
geojson
数据。我在这里和这里看到了一些示例。
这是我的做法:
# Read geojson data for nepal with districts
library(tidyverse)
library(geojsonio)
#>
#> Attaching package: 'geojsonio'
#> The following object is masked from 'package:base':
#>
#> pretty
spdf <- geojson_read("nepal-districts.geojson", what = "sp")
##https://github.com/mesaugat/geoJSON-Nepal/blob/master/nepal-districts.geojson
#tidy data for ggplot2
library(broom)
spdf_fortified <- tidy(spdf)
#> Regions defined for each Polygons
# plot
ggplot() +
geom_polygon(data = spdf_fortified, aes( x = long, y = lat, group = group)) +
theme_void() +
coord_map()
names(spdf_fortified)
#> [1] "long" "lat" "order" "hole" "piece" "group" "id"
#Now read the data to map to districts
data=read.csv("data.csv")
#data from here
#https://github.com/opennepal/odp-poverty/blob/master/Human%20Poverty%20Index%20Value%20by%20Districts%20(2011)/data.csv
#filter and select data to reflect Value of HPI in various districts
data <- data %>% filter(Sub.Group=="HPI") %>% select(District,Value)
head(data)
#> District Value
#> 1 Achham 46.68
#> 2 Arghakhanchi 27.37
#> 3 Banke 32.10
#> 4 Baglung 27.33
#> 5 Baitadi 39.58
#> 6 Bajhang 45.32
# Value represents HPI value for each district.
#Now how to merge and fill Value for various districts
#
#
#
#
这段内容是关于编程的,创建于2018年6月14日,使用了reprex package(v0.2.0)。
如果我能将spdf_fortified
和data
合并到merged_df
中,我认为可以使用以下代码生成等值线地图:
ggplot(data = merged_df, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = Value), color = 'gray', size = 0.1)
合并两个数据需要帮助吗?
geom_text
或geom_label
即可。但是它们需要x
和y
美学属性,因此您需要预先计算一些内容,例如使用sf::st_centroid
(您仍然需要解包其结果)。我已经进行了编辑以进行演示。 - alistaire