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

R_U*_*ser 5 plot r

我想在R中的图中使用"湿地中的二氧化碳排放"标题,而二氧化碳中的2是下标,该区域的值(这里:"湿地")包含在名为"区域"的变量中.

region = "wetlands"
plot (1, 1, main=expression(CO[2]~paste(" emissions in ", region)))
Run Code Online (Sandbox Code Playgroud)

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

region="wetlands"
plot (1,1,main=paste(expression(CO[2]), "emissions in", region))
Run Code Online (Sandbox Code Playgroud)

但是这里没有下标,标题是:"湿地中的CO [2]排放".

是否有可能将变量值变为表达式?

谢谢你的帮助,

斯文

Rei*_*son 13

不需要paste()用于为plothmath样式的注释生成表达式.这很好用:

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

赠送:

在此输入图像描述

使用paste()只是妨碍了.

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


Ari*_*man 7

你可以使用替代品:

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

替代情节

?substitute帮助文件:

替代品的典型用途是为数据集和图表创建信息标签.下面的myplot示例显示了此工具的简单使用.它使用deparse和substitute函数为plot创建标签,这是myplot函数实际参数的字符串版本.