为了账号安全,请及时绑定邮箱和手机立即绑定

在绘图标签中组合paste()和expression()函数

在绘图标签中组合paste()和expression()函数

陪伴而非守候 2019-11-28 09:57:03
考虑以下简单示例:labNames <- c('xLab','yLabl')plot(c(1:10),xlab=expression(paste(labName[1], x^2)),ylab=expression(paste(labName[2], y^2)))我想要的是使变量'labName,'xLab'或'yLab'定义的字符输入出现在expression()定义的X ^ 2或y ^ 2旁边。照原样,带有下标的实际文本'labName'被连接到上标表达式。有什么想法吗?
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

bquote()函数@Aaron的替代解决方案。我们需要提供一个有效的R表达式,在这种情况下LABEL ~ x^2,例如,LABEL您要从vector分配的字符串在哪里labNames。bquote计算包装在表达式中的R代码,.( )并将结果代入表达式中。


这是一个例子:


labNames <- c('xLab','yLab')

xlab <- bquote(.(labNames[1]) ~ x^2)

ylab <- bquote(.(labNames[2]) ~ y^2)

plot(c(1:10), xlab = xlab, ylab = ylab)

(请注意,~只是增加了一些间距,如果您不希望使用空格,请将其替换为,*并且表达式的两个部分将并列。)


查看完整回答
反对 回复 2019-11-28
?
萧十郎

TA贡献1815条经验 获得超12个赞

使用substitute代替。


labNames <- c('xLab','yLab')

plot(c(1:10),

     xlab=substitute(paste(nn, x^2), list(nn=labNames[1])),

     ylab=substitute(paste(nn, y^2), list(nn=labNames[2])))


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 1608 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信