总之,我的问题是如何为facet_grid
with (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 表达式。