我有一个变量名称和单位的数据框。
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()
函数中生成轴标签的方式。
谢谢!
使用
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))