【问题标题】:Change plotting order of categories of data in tmap map R更改tmap map R中数据类别的绘制顺序
【发布时间】:2018-10-25 19:14:50
【问题描述】:

我正在使用 tmap 包在 R 中绘制一些空间数据。我在tm_dots 函数中定义了中断和绘图颜色。我希望能够定义类别的绘图顺序,以便它们由类别定义(最高的类别在顶部,第二高的类别,等等)。我需要能够清楚地看到最高类别点在哪里。我知道这可以通过多个空间点数据帧来实现,但是还有另一种不那么笨重的方法吗?下面是使用 meuse 数据的示例。我使点很大,所以它们重叠。所以理想情况下,在情节中,情节顺序是:蓝色、绿色、橙色、红色。

libary(tmap)
library(sp)

data("meuse")

coordinates(meuse) <- c("x","y")

tm_layout() +
  tm_shape(meuse) + tm_dots("cadmium", breaks = c(1,2,3,4,Inf), palette = "-Spectral", auto.palette.mapping = FALSE,
                            size = 1) + 
  tm_legend(legend.outside = TRUE)

【问题讨论】:

    标签: r sp tmap


    【解决方案1】:

    原来默认的绘图顺序是原始数据框的行顺序。为了使类别以正确的顺序绘制,我为类别创建了一个数值因子变量,并按它对原始数据框进行排序。

    libary(tmap)
    library(sp)
    library(dplyr)
    
    data("meuse")
    
    meuse <- meuse %>% 
             mutate(cat = base::cut(cadmium, breaks = c(-Inf,1,2,3,4,Inf), 
                             labels = c(1,2,3,4,5))) %>% 
             arrange(cat)
    
    coordinates(meuse) <- c("x","y")
    
    tm_layout() +
      tm_shape(meuse) + tm_dots("cadmium", breaks = c(1,2,3,4,Inf), palette = "-Spectral", auto.palette.mapping = FALSE,
                                size = 1) + 
      tm_legend(legend.outside = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 2023-02-22
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多