Estou plotando uma variável categórica e, em vez de mostrar as contagens para cada valor de categoria.
Estou procurando uma maneira ggplot
de exibir a porcentagem de valores nessa categoria. Obviamente, é possível criar outra variável com a porcentagem calculada e plotá-la, mas tenho que fazê-lo várias dezenas de vezes e espero conseguir isso em um único comando.
Eu estava experimentando algo como
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
mas devo usá-lo incorretamente, pois obtive erros.
Para reproduzir facilmente a configuração, veja um exemplo simplificado:
mydata <- c ("aa", "bb", NULL, "bb", "cc", "aa", "aa", "aa", "ee", NULL, "cc");
mydataf <- factor(mydata);
qplot (mydataf); #this shows the count, I'm looking to see % displayed.
No caso real, provavelmente usarei em ggplot
vez de qplot
, mas a maneira correta de usar stat_bin ainda me ilude.
Eu também tentei essas quatro abordagens:
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
mas todos os 4 dão:
Error: ggplot2 doesn't know how to deal with data of class factor
O mesmo erro aparece no caso simples de
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
então é claramente algo sobre como ggplot
interage com um único vetor. Estou coçando a cabeça, pesquisando no Google por esse erro, dá um único resultado .