You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rasterVis::levelplot:调整栅格图层标题名称与文本大小

解决rasterVis::levelplot的图层名称与文本大小问题

问题说明

使用rasterVis::levelplot绘制栅格栈时遇到两个问题:

  • 自定义的图层名称未生效,仍显示默认名称且空格被替换为点号
  • 无法调整绘图文本(包括图层标题、轴标签等)的大小

错误原因分析

  1. 栅格创建失误:代码中给r2设置投影时错误指向r1,导致r2投影未正确配置
  2. 参数理解偏差:main参数控制的是整个绘图的大标题,而非子图的图层标题;图层标题样式需通过strip.custom和par.settings调整
  3. 名称显示规则:默认情况下levelplot会将名称中的空格替换为点号,需显式指定显示名称

修正后的代码及解释

# 加载工具包
library(raster)
library(rasterVis)

# 创建栅格1
r1 = raster(ext=extent(c(-69.5, -56, -56, -49)), res=c(0.5, 0.5))
r1[] <- c(1,3,4,5)
crs(r1) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

# 创建栅格2(修正投影设置错误)
r2 = raster(ext=extent(c(-69.5, -56, -56, -49)), res=c(0.5, 0.5))
r2[] <- c(2,5,7,8)
crs(r2) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

# 创建栅格栈并设置名称
s <- stack(r1, r2)
custom_names <- c("My raster 1", "My raster 2")
names(s) <- custom_names

# 定义颜色方案
col <- rev(heat.colors(999))

# 绘制levelplot,自定义名称与文本大小
p <- levelplot(
  s,
  col.regions = col,
  names.attr = custom_names, # 强制保留空格的自定义图层名称
  main = list(label = "栅格栈可视化", cex = 1.5), # 设置大标题及字号
  par.settings = list(
    axis.text = list(cex = 0.8), # 轴标签文本大小
    axis.title = list(cex = 1) # 轴标题文本大小
  ),
  strip = strip.custom(
    par.strip.text = list(cex = 1.2) # 子图图层标题的文本大小
  )
)

p

关键参数说明

  • names.attr:显式指定子图显示名称,避免空格被自动替换为点号
  • main:通过list(label = "标题内容", cex = 字号)设置全局大标题
  • par.settings:统一配置轴标签、轴标题等全局文本样式
  • strip.custom:单独调整子图标题的字号,par.strip.text控制具体大小

内容的提问来源于stack exchange,提问作者user303287

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:24:30