首页 > 解决方案 > Rattice 中的轮廓图颜色和标签选项

问题描述

我对 Lattice 很陌生,而且我被一些可能是基本的编码所困扰。我正在使用 shapefiles 和 geoTIFFS 来制作动物分布图,特别是我有:

我将 geoTIFF 之一的水平图(使用 adehabitatHR 生成的 UD)与特定间隔(百分位值)的相同 geoTIFF 的等高线图重叠,第二个 geoTIFF 的等高线图(来自 ETOPO2 的深度栅格)用于三个特定值(-200 ,-1000 和 -2000),点 shapefile(动物位置)和多边形 shapefile(土地)。一切正常,但我需要更改等高线图标签的字体大小、它们的长度(即从 0.12315 到 0.123)和所有等高线图的定位。对于深度等高线图,我想以“连续线”、“虚线”和“点线”之类的方式更改每条线的样式,而对于 UD 的等高线图,我想使用更改每条线的颜色黄色到红色的调色板。

据我了解,我应该使用面板功能来实现这些更改(例如控制等高线图中的 z 标签),但我不太确定该怎么做。我生成“情节”的部分代码:

aa <-
  quantile(
    UD_raster,
    probs = c(0.25, 0.75),
    type = 8,
    names = TRUE
  )
my.at <- c(aa[1], aa[2])
depth<-c(-100, -200, -2000)

levelplot(
  UD_raster,
  xlab = "",
  ylab = "",
  margin = FALSE,
  contour = FALSE,
  col.regions = viridis(100),
  main = "A",
  maxpixels = 2e5
) + layer(sp.polygons(Land, fill = "grey40", col = NA)) + layer(sp.points(locations, pts = 2, col = "red")) + contourplot(
  UD_raster,
  at = my.at,
  labels = TRUE,
  margin = FALSE
) + contourplot(
  ETOPO2,
  at = depth,
  labels = TRUE,
  margin = FALSE
)

可以在此处找到没有 UD 层和点 shapefile 的简化图像,您可以看到它非常混乱。谢谢你的帮助。

标签: rlattice

解决方案


到目前为止,对于 ETOPO2 计数图,我已经通过消除标签并添加参数lty来设置线条的样式来解决。因为我不知道如何为轮廓中的每条线使用具有不同值的lty,所以我在同一表面上复制了 3 次轮廓图函数,每个轮廓对应于我感兴趣的每个轮廓(这很容易,因为我只需要三个轮廓)。

对于我使用的剩余轮廓图标签的位置、字体和字体大小

labels = list(cex = 0.8, "verdana"),
  label.style = "flat"

为了“缩短”标签的长度,我使用了函数round我指定要舍入的十进制数字。

所以现在我的新代码如下所示:

aa <-
  quantile(
    UD_raster,
    probs = c(0.25, 0.75),
    type = 8,
    names = TRUE
  )
my.at <- c(aa[1], aa[2])
my.at <- round(my.at, 3)

levelplot(
  UD_raster,
  xlab = "",
  ylab = "",
  margin = FALSE,
  contour = FALSE,
  col.regions = viridis(100),
  main = "A",
  maxpixels = 2e5
) + layer(sp.polygons(Land, fill = "grey40", col = NA)) + layer(sp.points(positions, pts = 2, col = "red")) + contourplot(
  UD_raster,
  at = my.at,
  labels = list(cex = 0.8, "verdana"),
  label.style = "flat",
  margin = FALSE
) + contourplot(
  ETOPO2,
  at = -200,
  labels = FALSE,
  margin = FALSE,
  lty = 1,
  pretty = TRUE
) + contourplot(
  ETOPO2,
  at = -1000,
  labels = FALSE,
  margin = FALSE,
  lty = 2,
  pretty = TRUE
) + contourplot(
  ETOPO2,
  at = -2000,
  labels = FALSE,
  margin = FALSE,
  lty = 3,
  pretty = TRUE
)

正如人们所预料的那样,制作情节需要更长的时间。仍然不知道如何更改 UD 等高线图的颜色。


推荐阅读