在绘图刻度标记标签中组合paste()和expression()

时间:2016-03-16 09:27:49

标签: r plot expression

考虑这个例子:

labs <- c("AT~frac(T,C)~G","GGAA","TTAA","AAAA")
plot(c(1:4), c(1:4), axes=F, xlab="",ylab="", par(mar=c(8,3,2,1)))
axis(1, at=c(1:4), labels=labs, las=2)

生成这个:

enter image description here

我的意图是这样:

enter image description here

我硬编码为:

plot(c(1:4), c(1:4), type="n", axes=F, xlab="",ylab="")
axis(1, at=c(1:4), labels=c(expression(AT~frac(T,C)~G), expression(GGAA), expression(TTAA), expression(AAAA)), las=2)

我得到的最接近的答案是this。 让expression()按照我的意愿工作对我来说真的很混乱。我打算使用&#34;表达式字符串&#34;的矢量从可用数据动态生成这些x轴刻度标记。

1 个答案:

答案 0 :(得分:2)

你很亲密! frac()是您需要调用的函数。它可以与字符串一起用作参数。这个样本

labs <- expression(paste("AT"~frac("T","C")~"G",sep=""),"GGAA","TTAA","AAAA")
plot(c(1:4), c(1:4), axes=F, xlab="",ylab="")
axis(1, at=c(1:4), labels=labs, las=2)

生成此图:

labels