R:下标文本作为变量
R: subscript text as a variable
在 R 中,我想在 for 循环中创建多个图。 y 轴标签应该显示一个下标,其中下标文本应随循环迭代器而变化。
对于标签下标,我以前使用 "expression"。但是,正如您在最小示例中看到的那样,表达式中的下标无法按照我认为的方式进行索引(而不是打印“1”、“2”、“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]))
}
谢谢!
使用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
的环境。
在 R 中,我想在 for 循环中创建多个图。 y 轴标签应该显示一个下标,其中下标文本应随循环迭代器而变化。
对于标签下标,我以前使用 "expression"。但是,正如您在最小示例中看到的那样,表达式中的下标无法按照我认为的方式进行索引(而不是打印“1”、“2”、“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]))
}
谢谢!
使用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
的环境。