在R中的Axis标题中同时使用下标和变量值

时间:2011-08-11 11:14:10

标签: r plot

我想在R中的图中使用“湿地中的二氧化碳排放”标题,而二氧化碳中的2则是下标,该区域的值(此处:“湿地”)包含在名为“变量”的变量中。区域”。

region = "wetlands"
plot (1, 1, main=expression(CO[2]~paste(" emissions in ", region)))

问题是,不是粘贴变量的值,而是粘贴变量的名称。这给出了“区域内的二氧化碳排放”而不是“湿地中的二氧化碳排放”。我也尝试过:

region="wetlands"
plot (1,1,main=paste(expression(CO[2]), "emissions in", region))

但是这里没有下标,标题是:“湿地的CO [2]排放”。

以某种方式可以将变量的值变为表达式吗?

感谢您的帮助,

斯文

3 个答案:

答案 0 :(得分:13)

在为plothmath样式的注释生成表达式时,无需使用paste()。这很好用:

region <- "foo"
plot (1, 1, main = bquote(CO[2] ~ "emissions in" ~ .(region)))

,并提供:

enter image description here

使用paste()只是妨碍了。

Nb:您必须引用"in",因为解析器会将其作为R语法的关键部分来抓取。

答案 1 :(得分:7)

您可以使用替代:

mn <- substitute(CO[2]~ "emissions in" ~ region, list(region="wetlands") )
plot(1, 1, main=mn )

substitute plot

来自?substitute帮助文件:

  

替代品的典型用途是为其创建信息标签   数据集和图表。下面的myplot示例显示了一个简单的用法   这个设施。它使用deparse函数和替换创建   绘图的标签,它们是实际的字符串版本   函数myplot的参数。

答案 2 :(得分:2)

对于您的情况,从重复链接中的一个答案中窃取:

x <- "OberKrain"
plot(1:10, 1:10, main = bquote(paste(CO[2], " in ", .(x))))

enter image description here