如何在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
相关产品推荐
相关产品推荐

