r - Rattice 中的轮廓图颜色和标签选项
问题描述
我对 Lattice 很陌生,而且我被一些可能是基本的编码所困扰。我正在使用 shapefiles 和 geoTIFFS 来制作动物分布图,特别是我有:
- 1 x 点形状文件
- 2 x geoTIFF
- 1 x 多边形形状文件
我将 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 的简化图像,您可以看到它非常混乱。谢谢你的帮助。
解决方案
到目前为止,对于 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 等高线图的颜色。
推荐阅读
- angular - 使用 AngularFire Auth Guard redirectUnauthorizedTo 然后重定向到原始 URL
- firebase - Firebase 测试期已完成
- html - 使类元素居中
- c++ - 带有 std::function 的 lambda/function 指针导致错误
- python - 根据条件选择 Numpy 数组中 NaN 之后的第一次出现
- javascript - Vue 3 如何观看地图
- cakephp - 插件中的cakephp 4扩展模型-找不到表
- php - 调用未定义的方法 MongoDB\Driver\Cursor::current()
- xml - 为什么 DOMParser 不能解析这个 XML?
- error-handling - SAS - 如果输入数据集中缺少变量,则将错误写入日志