2016-05-27 3 views
0

Есть пример here, но я просто не могу заставить его работать. Вот мой случай использования:as_labeller с выражением в ggplot2 и facet_wrap

df <- as.data.frame(matrix(runif(9),8,8)) 
angles <- c(0.112, 2.633, 3.766, 5.687, 0.867, 7.978, 8.937, 4.652) 
df$factor <- as.factor(angles) 
df.m <- melt(df) 
ggplot(df.m, aes(variable, value)) + 
    geom_boxplot() + 
    facet_wrap(~factor) 

enter image description here

Теперь я хочу, чтобы отобразить закругленные углы с символом градуса. Поэтому я пробовал это

new.labs <- as_labeller(paste(round(as.numeric(angles)), "degree"), label_parsed) 
ggplot(df.m, aes(variable, value)) + 
    geom_boxplot() + 
    facet_wrap(~factor, labeller=new.labs) 

Но он производит пустые строки.

ответ

1

Я считаю, что as.labeller ожидает либо функцию, либо таблицу поиска, а не имя переменной.

new.labs <- as_labeller(function(string) paste(round(as.numeric(string)), "*degree"), label_parsed) 

ggplot(df.m, aes(variable, value)) + 
    geom_boxplot() + 
    facet_wrap(~factor, labeller = new.labs) 

enter image description here

+0

Там, кажется, проблема с выходом, хотя: он использует индекс углов, а не их значения. – Ben

+0

@Ben Это похоже на углы, округленные до меня ... Сколько цифр вы хотите округлить? Я просто округлился до той же суммы, что и в вашем вопросе. – aosmith

+0

Да, это ... Наверное, для меня это выходное время недели :) – Ben

Смежные вопросы