首页 > 解决方案 > 将 tmap 图例从基于符号更改为基于填充

问题描述

我有一个包含以下代码的 tmap:

  map <- tm_shape(gb_map)+tm_polygons(border.col = 'transparent', col='black')+
  tm_shape(data) +
    tm_dots("pred",palette="OrRd",
            style = "fisher",
            border.col='transparent', 
            title = "Predicted Sales",
            n=5, size =0.03) +
    tm_layout("Predicted Sales", title.size=1, legend.outside = T)

这当前处于 tmap 视图模式。

我希望更改图例,使图例用正方形表示颜色,因为现在的符号太小了。有什么方法可以保持一切不变,只是将图例更改为正方形?(我不能增加符号的大小,因为我希望点在地图上显得很小)手动添加图例会导致我丢失我不希望的断点,因为我正在使用 'fisher' 来确定断点。

在此处输入图像描述

能改成这样的传奇吗?

在此处输入图像描述

谢谢!

标签: rtmap

解决方案


您将图例作为点获取,因为您使用的是tm_dots. 改为使用tm_fill会自动为您提供基于正方形的图例。请提供一些数据,以便我可以尝试您的代码并提出合适的措施。在执行此操作之前,请将您的多边形数据读取为

library("rgdal")
Output.Areas <-  readOGR(".", "shapefile_name")

然后读取您的数据文件

data <- read.csv("File_name.csv")

现在您将数据连接到 shapefile

merged <- merge(Output.Areas, data, by.x="NAME_1", by.y="NAME_2")

数据 (NAME_2) 和 Output.Areas shapefile (NAME_1) 的公共字段是 NAME_1 和 NAME_2。现在tm_fill将自动为您提供基于正方形的图例

tm_shape(merged)+
  tm_borders(alpha=.4) +
  tm_fill("pred",palette="OrRd",
          style = "fisher",
          title = "Predicted Sales")

推荐阅读