Я думаю, что ваша проблема связана с масштабом ваших переменных.
try:
summary(df$v1)
summary(df$v2)
, и вы заметите, что небольшая доля ваших данных имеет большие значения
dim(df[df$v2>0,])
dim(df[df$v2>10000,])
Решением может быть установка разрывов вручную. Примерно так:
tm_shape(df) +
tm_fill("v2", title = "Change in V2",
breaks = c(-1000, -500, 0, 500, 1000, 10000, 30000),
border.alpha = 0, palette = "-RdBu")
Это даст:
Вы можете устанавливать свои перерывы, как считаете нужным. Смена поддона (или создание нового поддона вручную) может улучшить карту.
tm_shape(df) +
tm_fill("v2", title = "Change in V2",
breaks = c(-1000, -500, 0, 500, 1000, 10000, 30000),
border.alpha = 0, palette = "-Greens")
tm_shape(df) +
tm_fill("v2", title = "Change in V2",
breaks = c(-1000, -500, 0, 500, 1000, 10000, 30000),
border.alpha = 0, palette = "PuBuGn")
Кроме того, вы можете указать ярлыки хотя бы метка аргумент.
Надеюсь, это поможет пролить свет на вашу проблему.