首页 文章

ggplot带文本中的希腊字母

提问于
浏览
9

我试图覆盖一些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'

我应该如何创建条带标签?

2 回答

  • 9

    试试这个:

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

    在这里发布,因为它是相关的:

    如果您希望将变量本身的名称以及变量的级别/值作为表达式进行求值(即呈现为乳胶),请尝试以下操作:

    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)
    

    enter image description here

    图片位于http://img709.imageshack.us/img709/1168/parseall.png

相关问题