2014-12-11 14 views

Odpowiedz

24

ggplot2 i scales pakiety może to zrobić:

y <- c(12, 20)/100 
x <- c(1, 2) 

library(ggplot2) 
library(scales) 
myplot <- qplot(as.factor(x), y, geom="bar") 
myplot + scale_y_continuous(labels=percent) 

Wydaje się, że opcja stat() został zdjęty, co powoduje komunikat o błędzie. Spróbuj tego:

library(scales) 

myplot <- ggplot(mtcars, aes(factor(cyl))) + 
      geom_bar(aes(y = (..count..)/sum(..count..))) + 
      scale_y_continuous(labels=percent) 

myplot 
63

labels = percent jest przestarzałe w najnowszej wersji (2.2.1) ggplot2. Polecenie brzmi:

+ scale_y_continuous(labels = scales::percent) 
10

W przypadku, wystarczy dodać % bez pomnożenie przez 100:

+ scale_y_continuous(labels = function(x){ paste0(x, "%") })

+0

+1 dla żadnego zewnętrznego uzależnienia. Wiem, że skoro Hadley jest autorem zarówno ggplot2, jak i scale, to nie powinno to mieć znaczenia - ale to rozwiązanie jest nadal doceniane. –

+1

Drobne szykanie składni - dla funkcji jednego liniowca, jako anonimowe funkcje takie jak to często są, nawiasy nie są potrzebne: 'function (x) paste0 (x,"% ")' zrobi. –

Powiązane problemy