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

如何在terra基础绘图的图例标题中写入分式数学表达式?

解决terra绘图图例标题添加分式数学表达式的问题

terra自带的图例绘制对expression()的支持有限,直接在plg的title参数中传入分式表达式无法正常渲染。可以通过以下两种方法解决:

方法1:手动添加图例标题

先绘制不带标题的图例,再用mtext()在图例位置添加数学表达式标题:

library(terra)
x <- rast(matrix(1:25, nrow=5, ncol=5))

# 绘制栅格,图例标题设为空
plot(x, legend = TRUE, plg = list(title = ""))

# 在图例右侧添加分式标题,line参数调整与图例的距离
mtext(expression(frac(分子文本, 分母文本)), side = 4, line = 3, cex = 1.1)

方法2:手动绘制完整图例

关闭terra的自动图例,用base绘图的legend()函数手动绘制,该函数完全支持数学表达式作为标题:

library(terra)
x <- rast(matrix(1:25, nrow=5, ncol=5))

# 绘制栅格,不启用自动图例
plot(x, legend = FALSE)

# 手动绘制图例,title参数传入分式表达式
legend(
  "right",
  title = expression(frac(Sample~Numerator, Sample~Denominator)),
  legend = seq(1, 25, 5),
  fill = terrain.colors(5),
  bty = "n"
)

如果需要动态获取图例位置,可以通过par("usr")获取绘图区域的坐标范围,精准调整标题或图例的位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:37:37