Estoy trazando una variable categórica y en lugar de mostrar los recuentos para cada valor de categoría.
Estoy buscando una manera de ggplot
mostrar el porcentaje de valores en esa categoría. Por supuesto, es posible crear otra variable con el porcentaje calculado y trazar esa, pero tengo que hacerlo varias docenas de veces y espero lograr eso en un solo comando.
Estaba experimentando con algo como
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
pero debo usarlo incorrectamente, ya que obtuve errores.
Para reproducir fácilmente la configuración, aquí hay un ejemplo 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.
En el caso real, probablemente usaré enggplot
lugar de qplot
, pero la forma correcta de usar stat_bin todavía me elude.
También probé estos cuatro enfoques:
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();
pero los 4 dan:
Error: ggplot2 doesn't know how to deal with data of class factor
El mismo error aparece para el caso simple de
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
entonces es claramente algo acerca de cómo ggplot
interactúa con un solo vector. Me estoy rascando la cabeza, buscar en Google ese error da un solo resultado .