是否可以修改R封装图中的内部区域?

问题描述 投票:0回答:1

我有一个数据集,其数据行代表时间范围,其列各代表意大利的一个地区。我需要在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进行漂亮绘图的建议吗?预先感谢所有答案!

r ggplot2 maps
1个回答
0
投票

您需要一个“区域”列来表示20个区域(请注意,已经存在的region列表示您所说的95个省)。不幸的是,该特定地图似乎没有地图。

因此,您将不得不找到另一列以那20个区域为列的地图(您尝试过mapIT包吗?)或尝试自己动手做-但您需要知道哪些省份属于到哪个地区。

  1. 根据独特的省份创建数据框:

data_regions <- data.frame(province=unique(it_map$region), Region=NA, stringsAsFactors = FALSE)

  1. 编辑此数据框,并使用对意大利的了解自行填写“地区”列的值。输入名称(或分配一个代码)。您应该总共有20个人。这可能需要一些时间。

  2. 将此数据框与您已经从地图包中获取的地图数据合并。

    it_map <- it_map %>% rename(province=region) %>% inner_join(data_regions)

  3. 绘制它。

    it_map %>% ggplot(aes(long, lat, group = group)) + geom_polygon(aes(fill = Region), color="white")

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.