我正试图创建一个显示分歧值的地图。我试着设置分界线,但不知为何不同的类没有显示不同的颜色(点击这里查看地图). 输出图总是对几个类有相同的颜色。
tm_shape(abm_population)+
tm_fill("diff_rel_growth",breaks=c(min(abm_population$diff_rel_growth,na.rm = T),-0.5,-0.3,-0.1,0.1,0.3,0.5,max(abm_population$diff_rel_growth,na.rm = T)))
我缺少什么或做错了什么?
考虑到即使你提供了代码,也很难重现你的问题,所以很难给出一个完整的答案。
尽管如此,我的感觉是你的代码工作正常。似乎你的问题更多的是与你定义类的方式有关。请注意,你有一个巨大的类别,范围从0.50到61.93(这个类别似乎是有更多多边形的类别)。
第一步是仔细检查你的数据。然后,看看你是否可以定义一组不同的中断。
最后,你还可以控制颜色。
nc = st_read(system.file("shape/nc.shp", package="sf"))
Breaks <- c(0, 2000, 4000, 6000, 31000)
Labels <- c("0 - 2000", "2000 - 4000", "4000 - 6000", ">6000")
MyPalette <- c("#f2f0f7", "#cbc9e2", "#9e9ac8", "#6a51a3")
tm_shape(nc) + tm_polygons(col="BIR79", title = "Births 1979 - 84",
palette = MyPalette,
breaks = Breaks, labels = Labels) +
tm_layout(legend.position = c(0.01,0.65),
scale=0.65,
legend.frame = T,
bg.color = "lightblue") +
tm_compass(size = 5, type = "rose", lwd = 3) +
tm_scale_bar(breaks = c(0,50,100,150,200),size = 1, position = c(0.06,0),
lwd = 3)