我想合并拉丁文和希腊文文本的向量以生成图标题,轴标签,图例条目等。我在下面提供了一个简单的示例。我无法弄清楚如何以其 native 形式呈现希腊字母。我已经尝试将expressionparseapply的各种组合用于paste命令,但是我无法向量化易于为单个表达式生成混合拉丁/希腊文本的代码(例如,expression("A ("*alpha*")")适合这种情况)单个表达式)。

data<-matrix(seq(20),nrow=5,ncol=4,byrow=TRUE)
colnames(data)<-c("A","B","C","D")
greek<-c(" (alpha)"," (beta)"," (gamma)"," (delta)")
matplot(data)
legend(1,max(data),fill=c("black","red","green","blue"),apply(matrix(paste(colnames(data),greek,sep=""),nrow=4,ncol=1),1,expression))

您能帮我处理apply()语句中的legend()语句吗?需要进行一些修改才能产生所需的输出(即A(α),B(β),C(γ),D(δ))。提前致谢。

最佳答案

这是一个避免parse()的替代方法,并且可以使用您对@mnel的好答案的第一个注释中提到的示例:

greek <- c("alpha", "beta", "gamma", "delta")
cnames <- paste(LETTERS[1:4], letters[1:4])

legend_expressions <-
sapply(1:4, function(i) {
    as.expression(substitute(A (B),
                  list(A = as.name(cnames[i]), B = as.name(greek[i]))))
})

matplot(data)
legend(1,max(data),fill=c("black","red","green","blue"),legend_expressions)

关于R:为图标题,轴标签或图例创建拉丁/希腊表达式的矢量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13169318/

10-12 16:32