使用数据框中的字符串列获取绘图轴标签中的上标

问题描述 投票:0回答:1

我有一个变量名称和单位的数据框。

df1 <- data.frame(Variable = paste('Variable', 1:4), Unit = c('mm', 'cm ^ 2', 'cm ^ 2 * hr ^ -1', 'cm ^ 3 * cm ^ -2 * hr ^ -1'))
# > df1
#     Variable                       Unit
# 1 Variable 1                         mm
# 2 Variable 2                     cm ^ 2
# 3 Variable 3           cm ^ 2 * hr ^ -1
# 4 Variable 4 cm ^ 3 * cm ^ -2 * hr ^ -1

我想在生成图的轴标签时使用这些。这是我正在使用的一些示例代码。

par(mfrow = c(2, 2))
for (u in 1:4) {
  plot(0, xlab = paste0(df1[u, ]$Variable, ', ', bquote(.(df1[u, ]$Unit))))
}

这些图是这样的。您可以看到上标如何无法正常工作。

怎样才能得到我想要的上标?我之前使用过

expression()
paste()
bquote()
函数,但从未用于对象的这种特定组合(例如我正在使用的包含一列单位的数据框)、上标和算术运算符。我不确定是否需要以某种方式重新格式化单位列或更改在
plot()
函数中生成轴标签的方式。

谢谢!

r plot axis axis-labels superscript
1个回答
0
投票

使用

str2lang
。我会把它放在
mtext

par(mfrow=c(2, 2))
for (u in 1:4) {
  plot(0, ann=FALSE)
  mtext(bquote(.(str2lang(df1[u, ]$Unit))), 1, 3)
}


数据:

df1 <- structure(list(Variable = c("Variable 1", "Variable 2", "Variable 3", 
"Variable 4"), Unit = c("mm", "cm ^ 2", "cm ^ 2 * hr ^ -1", "cm ^ 3 * cm ^ -2 * hr ^ -1"
)), class = "data.frame", row.names = c(NA, -4L))
© www.soinside.com 2019 - 2024. All rights reserved.