R:下标文本作为变量

时间:2018-02-19 10:46:45

标签: r text plot subscript

在R中我想在for循环中创建几个图。 y轴标签应该显示下标,其中下标文本应该与循环迭代器一起变化。

对于下标标签,我之前使用过"表达式#34;。但是,正如您在最小示例中所看到的,表达式中的下标无法按照我的想法进行索引(而不是打印" 1"," 2",&#34 ; 3"它只是打印" i")。您是否知道如何解决此问题(通过使用表达式函数或能够生成下标的任何其他文本函数)?

最小代码:

# minimal example code

Data = matrix(ncol = 4, nrow = 1000)
colnames(Data) = c("time", "k1", "k2", "k3")

Data[,1] = seq(0.1,100,0.1)
Data[,2] = sin(Data[,1])
Data[,3] = cos(Data[,1])
Data[,4] = tan(Data[,1])

for(i in 1:3) {
  plot(Data[,1], Data[,(1+i)], type = "l", lwd = 2, xlab = "time", ylab = expression("k" [i]))
}

谢谢!

1 个答案:

答案 0 :(得分:2)

使用bquote。从这个SO偷来的: Subscripts in plots in R

for(i in 1:3) {
  plot(Data[,1], Data[,(1+i)], type = "l", lwd = 2, xlab = "time", ylab = bquote(k[.(i)]))
}

它的语法非常奇怪:bquote(WORD [ . (OBJECT) ]。请注意,未引用WORD和点。我相信.指的是要找到的OBJECT环境。