Греческие буквы в тексте полосы ggplot - PullRequest
9 голосов
/ 08 марта 2010

Я пытаюсь переопределить текст в некоторых полосах 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)

Я понял, что должен добавить аргумент labeller к 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 голосов
/ 08 марта 2010

Попробуйте это:

p + facet_grid(fy ~ fx, labeller = label_parsed)
3 голосов
/ 16 марта 2010

разместив это здесь, так как это связано:

Если вы хотите, чтобы имя самой переменной, а также уровни / значения переменной оценивались как выражение (то есть отображались так, как если бы они были латексными), попробуйте следующее:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...