我想重写一些ggplot条的文本包含希腊字符。下面是一些示例数据,并为情节的基础。

dfr <- data.frame(
   x = rep(1:10, times = 6),
   y = runif(60),
   fx = rep(c("foo", "bar"), each = 30),
   fy = rep(c("alpha", "beta", "gamma"), each = 10, times = 2)
)

p <- ggplot(dfr, aes(x, y)) + geom_point()

我在一个情节第一次尝试具有在带标签没有希腊

 p + facet_grid(fy ~ fx)

据我了解,我应该添加一个标签打印机参数facet_grid覆盖文本。我认为,这应该吐出处理希腊字符的表达,但我的代码只是抛出当打印图形错误。

lbl <- function(variable, value)
{
   if(variable == "fy") parse(text=as.character(value)) else value
}
p + facet_grid(fy ~ fx, labeller = lbl)


Error in aperm(X, c(s.call, s.ans)) : 
  unimplemented type 'expression' in 'aperm'

应该如何创建带状标签?

有帮助吗?

解决方案

尝试这种情况:

p + facet_grid(fy ~ fx, labeller = label_parsed)

其他提示

在这里张贴这一点,因为它的相关:

如果你想要的变量本身以及水平的名称/变量的值被作为(呈现为好像它们是胶乳即)的表达式求值,尝试:

label_parseall <- function(variable, value) {
    plyr::llply(value, function(x) parse(text = paste(variable, 
        x, sep = "==")))
}

示例:

data <- data.frame(x = runif(10), y = runif(10), 
    gamma = sample(c("gamma[0]", "gamma[1]"), 10, rep = T))
ggplot(data, aes(x, y)) + geom_point() + facet_grid(~gamma, 
    labeller = label_parselabel) 

“在这里输入的图像描述”

http://img709.imageshack.us/img709/1168/parseall图像.PNG

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top