在 R 中使用粘贴文本中的上标(对于多个值的向量)

Use superscripts in text with paste (for a vector of several values) in R

我想要图例中带有上标的标签。此外,我想构建具有粘贴功能的标签。我已经想出如何使用 paste 使用我的值向量的图例。我还使用 expression 来获取上标。但是我不能一起使用它们。

这是我的尝试:

带有图例的图根据值向量成功绘制了三个图例项,但图例中没有上标。

#set-up
size=c(50, 100, 150)
paste(size, "km^2", sep=" ")
#output: paste function works
# "50 km^2"  "100 km^2" "150 km^2"

#plot sample graph
plot(x=c(1:10)*100, y=c(1:10)*10, col="red")
points(x=c(8:17)*50, y=c(1:10)*7, col="green")
points(x=c(8:17)*50, y=c(1:10)*12, col="blue")
#legend
legend(x = 'topleft', 
       legend = paste(size, "km^2", sep=" "),
       col = c("red", "green", "blue"), pch=19,bty = 'n', xjust = 1, cex=0.8)

在这里我可以在图表上打印上标而不粘贴。

#print with superscript
mtext(line=-4,adj=0,expression('km'^'2'*' size '))

失败的图表

您可以使用 paste 然后 parse 创建表达式字符串向量。

plot(x=c(1:10)*100, y=c(1:10)*10, col="red")
points(x=c(8:17)*50, y=c(1:10)*7, col="green")
points(x=c(8:17)*50, y=c(1:10)*12, col="blue")

#legend
legend(x = 'topleft', 
       legend = parse(text=paste(size, "*km^2~size")),
       col = c("red", "green", "blue"), pch=19, bty = 'n', xjust = 1, cex=0.8)