R tmap tm_facet 将值分配给错误的位置
R tmap tm_facet assigns values to the wrong location
我正在尝试使用 tm_facets 显示 2005、2050 和 2080 年的数据(在本例中为玉米产量)。test.RDS 文件可用 here。
library(tmap)
map.temp <- readRDS("test.RDS")
title <- "Maize rainfed yield <br> (mt/ha)"
legend_title <- "(mt/ha)"
breaks <- c(1.0, 2139.2, 4277.5, 6415.8, 8554)
tm_shape(map.temp) +
tm_polygons(col = "value", title = legend_title) +
tm_facets(by = "year") +
tm_layout(main.title = title) +
tm_view(view.legend.position = c("left", "bottom"))
上面的代码执行了此操作,但在错误的多边形和错误的年份中显示了数据。要查看此内容,请 运行 脚本并单击加拿大东北部的深红色区域。所有三个地图中的弹出窗口都显示 AMR_RUS,值为 5,634,但颜色不同。查看 map.temp 文件(我正在使用 Rstudio 来完成所有这些工作)。使用 AMR_RUS 在 FPU 上过滤。 2005 年的值为 6,047,2050 年为 5634,2080 年为 4406(气候变化会降低该地区的产量)。接下来查看几何列中的前几个条目。 lat long 坐标是针对中俄边界沿线的一个区域。阿穆尔河构成了该边界,AMR_RUS FPU(粮食生产单位)位于俄罗斯阿穆尔河以北。
是我的代码或数据有问题,还是tmap中的tm_facet函数有问题?
不幸的是,我无法找到 tmap
的解决方案,并且不确定为什么会在弹出窗口中错放多边形名称和值。 更新: 似乎这是一个 tmap
错误,立即修复 - 参见 tmap issue 268.
我知道你要求 tmap
解决方案,但是,或者,可能值得探索 mapview
的解决方案 - 检查一下,看看它是否适合你:
library(mapview)
breaks <- c(1.0, 2139.2, 4277.5, 6415.8, 8554)
m_2005 <- mapview(map.temp[map.temp$year == 2005, ],
zcol = "value",
at = breaks,
layer.name = "2005 - mt/ha")
m_2050 <- mapview(map.temp[map.temp$year == 2050, ],
zcol = "value",
at = breaks,
layer.name = "2050 - mt/ha")
m_2080 <- mapview(map.temp[map.temp$year == 2080, ],
zcol = "value",
at = breaks,
layer.name = "2080 - mt/ha")
sync(m_2005, m_2050, m_2080) # add ncol = 1, if you wish 1 column representation
我正在尝试使用 tm_facets 显示 2005、2050 和 2080 年的数据(在本例中为玉米产量)。test.RDS 文件可用 here。
library(tmap)
map.temp <- readRDS("test.RDS")
title <- "Maize rainfed yield <br> (mt/ha)"
legend_title <- "(mt/ha)"
breaks <- c(1.0, 2139.2, 4277.5, 6415.8, 8554)
tm_shape(map.temp) +
tm_polygons(col = "value", title = legend_title) +
tm_facets(by = "year") +
tm_layout(main.title = title) +
tm_view(view.legend.position = c("left", "bottom"))
上面的代码执行了此操作,但在错误的多边形和错误的年份中显示了数据。要查看此内容,请 运行 脚本并单击加拿大东北部的深红色区域。所有三个地图中的弹出窗口都显示 AMR_RUS,值为 5,634,但颜色不同。查看 map.temp 文件(我正在使用 Rstudio 来完成所有这些工作)。使用 AMR_RUS 在 FPU 上过滤。 2005 年的值为 6,047,2050 年为 5634,2080 年为 4406(气候变化会降低该地区的产量)。接下来查看几何列中的前几个条目。 lat long 坐标是针对中俄边界沿线的一个区域。阿穆尔河构成了该边界,AMR_RUS FPU(粮食生产单位)位于俄罗斯阿穆尔河以北。
是我的代码或数据有问题,还是tmap中的tm_facet函数有问题?
不幸的是,我无法找到 tmap
的解决方案,并且不确定为什么会在弹出窗口中错放多边形名称和值。 更新: 似乎这是一个 tmap
错误,立即修复 - 参见 tmap issue 268.
我知道你要求 tmap
解决方案,但是,或者,可能值得探索 mapview
的解决方案 - 检查一下,看看它是否适合你:
library(mapview)
breaks <- c(1.0, 2139.2, 4277.5, 6415.8, 8554)
m_2005 <- mapview(map.temp[map.temp$year == 2005, ],
zcol = "value",
at = breaks,
layer.name = "2005 - mt/ha")
m_2050 <- mapview(map.temp[map.temp$year == 2050, ],
zcol = "value",
at = breaks,
layer.name = "2050 - mt/ha")
m_2080 <- mapview(map.temp[map.temp$year == 2080, ],
zcol = "value",
at = breaks,
layer.name = "2080 - mt/ha")
sync(m_2005, m_2050, m_2080) # add ncol = 1, if you wish 1 column representation