我有以下数据框

Data1 <- data.frame(pH = c(8,8.5,6,7.1,9), EC50 = c(20,11,5,25,50))
Data2 <- data.frame(pH = c(7,7.2,6.5,8.2,8.5), EC50 = c(13,15,18,25,19))

使用par我在一个绘图上创建了两个图形:
par(mfrow=c(2,1), oma=c(3,3,1,1), mar=c(2,2,3,1), cex.axis=1.3)
plot(x=Data1[,'pH'], y=Data1[,'EC50'])
plot(x=Data2[,'pH'], y=Data2[,'EC50'])

因为我使用了par,所以无法在xlab中指定ylabplot
因此,我使用mtext
我想在ylab中写一个上标,但是,我不知道该怎么做,
当使用mtext时。

我尝试了以下
mtext(expression("Cu^{2+} at EC50"), side=2, line = 4, padj=1, at=30, cex=1.2)

但似乎无法将2+作为Cu上方的上标。

任何帮助都超过了欢迎!

最佳答案

您必须在expression调用中构建表达式。请参阅Mathematical Annotation in R上的示例。

在你的情况下,我发现

mtext(expression(paste( plain("Cu") ^ plain("2+"), plain(" at EC50") )), side=2, line = 4, padj=1, at=30, cex=1.2)

给出了合理的结果

09-03 18:21