R语言 按日期列显示tmap中的色点

4uqofj5v  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(142)

我尝试使用tmap函数tm_dots通过一个时间变量给一组地理点着色,但是它一直将时间变量视为分类变量。有没有办法将POSIXct列用作连续变量?演示该问题的示例代码如下:

library(sf)
library(tmap)
df = data.frame(lon=1:20,lat=1:20,ts=as.POSIXct(paste0('2020-01-',1:20)))
df = st_as_sf(df,coords=c("lon","lat"),crs=4326)

tm_shape(df) + tm_dots(col="ts")

一种“解决方案”是将日期转换为数字(例如,从最早日期算起的天数),然后使用此数值变量为点着色,可能在图例中使用不同的标签将数字替换为原始日期,但这似乎需要大量的工作,并且不太可能在不进行大量修改的情况下产生满意的结果。

dly7yett

dly7yett1#

您需要声明一个调色板;考虑一下这段代码。它使用了一个通用的顺序调色板。还要注意在通用的tmap::tm_symbols()调用中stretch.palette = TRUE的默认值-这会导致插入颜色,也就是说,你可以有比调色板定义的颜色更多的值。

library(sf)
library(tmap)
df = data.frame(lon=1:20,lat=1:20,ts=as.POSIXct(paste0('2020-01-',1:20)))
df = st_as_sf(df,coords=c("lon","lat"),crs=4326)

tm_shape(df) + tm_dots(col="ts",
                       palette = "seq") # also consider "Blues"

相关问题