总之,我的问题是如何为facet_gridwith (1)group("|",A['i,j'],"|") 和(2)创建标签value?
对于(1),使用expression(),我只能让它在没有 value的情况下工作:
plot_labeller <- function(variable,value){
print(value)
if (variable=='FOO') {
expr1 <- expression(group("|",A['i,j'],"|"))
return(expr1)
} else {
return("bla")
}
}
对于 (2),显示value, usingpaste()仅适用于相当简单的数学表达式。例如:
plot_labeller <- function(variable,value){
if (variable=='FOO') {
expr1 <- paste("alpha"," : ",value)
return(expr1)
} else {
return("bar")
}
}
但是,paste()不适用于group()(e:找不到函数“组”)。即使没有group()它也不起作用:“A['i,j']”然后“按原样”显示,即不应用plotmath. 使用bquote()如下:
plot_labeller <- function(variable,value){
if (variable=='FOO') {
expr1 <- bquote(group("|",A['i,j'],"|") : .(value))
return(expr1)
} else {
return("bar")
}
}
也不起作用:
Error in labels[, i] <- labeller(names(label_df)[i], label_df[, i]) :
number of items to replace is not a multiple of replacement length
text()不过,用作品打印 bquoted 表达式。