r - 将 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' 来确定断点。
能改成这样的传奇吗?
谢谢!
解决方案
您将图例作为点获取,因为您使用的是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")
推荐阅读
- asp.net - Kudu编辑的SurfaceController文件不改变应用内容
- c# - 如何在c#中将字母数字值转换为int
- java - 当我们使用超类引用变量创建子类对象时,内存如何分配给超类和子类成员
- php - 如果参数是数组变量,如何在codeigniter模型中调用存储过程?
- c# - C# 加载文件名中带有句号/句点的文件时出错
- css - 宽度在 IE11 中不换行
- scala - 使用 Mockito 在 Scala 对象中模拟一个函数
- qt - 单击QML中另一个SpinBox的按钮时如何使SpinBox失去焦点
- google-cloud-ml - 处理在线预测请求
- android - 使用 OTP 在 Firebase 中注册