我有一个数据集,其数据行代表时间范围,其列各代表意大利的一个地区。我需要在R上的意大利地图上绘制此数据(我需要整个期间的总和,所以每个区域只有一个值)。我下载了软件包maps
,并加载了意大利地图it_map <- map_data('italy')
问题是,意大利分为20个地区和数十个省。该地图显示了这些省份的边界,但是我的数据是在地区级别汇总的。
是否有办法将所有省份的边界合并到各自的地区?我是否必须修改“组”列才能使属于一个地区的所有省份都相同?]
地图数据集是这样的:
long lat group order region subregion
x.x y.y 1 1 Bozen NA
x.x y.y 1 2 Bozen NA
等...当然,“区域”列实际上在哪里列出了省。
[还有关于ggplot2进行漂亮绘图的建议吗?预先感谢所有答案!
您需要一个“区域”列来表示20个区域(请注意,已经存在的region
列表示您所说的95个省)。不幸的是,该特定地图似乎没有地图。
因此,您将不得不找到另一列以那20个区域为列的地图(您尝试过mapIT包吗?)或尝试自己动手做-但您需要知道哪些省份属于到哪个地区。
data_regions <- data.frame(province=unique(it_map$region), Region=NA, stringsAsFactors = FALSE)
编辑此数据框,并使用对意大利的了解自行填写“地区”列的值。输入名称(或分配一个代码)。您应该总共有20个人。这可能需要一些时间。
将此数据框与您已经从地图包中获取的地图数据合并。
it_map <- it_map %>%
rename(province=region) %>%
inner_join(data_regions)
绘制它。
it_map %>%
ggplot(aes(long, lat, group = group)) +
geom_polygon(aes(fill = Region), color="white")
希望有所帮助。