2016-05-27 9 views
0

Es gibt ein Beispiel zur Verfügung gestellt here, aber ich kann es einfach nicht funktionieren. Hier ist mein Anwendungsfall:as_labeller mit einem Ausdruck in ggplot2 und 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

Jetzt habe ich abgerundete Ecken mit dem Grad Symbol angezeigt werden soll. Also habe ich das versucht

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) 

Aber es produziert leere Zeichenfolgen.

Antwort

1

Ich glaube, as.labeller erwartet entweder eine Funktion oder eine Nachschlagetabelle, kein Variablenname.

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

Es scheint ein Problem mit der Ausgabe zu sein, aber: es, den Index des Winkels verwendet, nicht ihre Werte. – Ben

+0

@Ben Das sieht nach abgerundeten Winkeln für mich aus ... Wie viele Ziffern sollen abgerundet werden? Ich bin gerade auf den gleichen Betrag gerundet, den Sie in Ihrer Frage gemacht haben. – aosmith

+0

Ja ist es ... Ich denke, es ist Wochenende für mich :) – Ben

Verwandte Themen