Показывать% вместо количества в диаграммах категориальных переменных

Я ' m строит график категориальной переменной и вместо того, чтобы показывать счетчики для каждого значения категории.

Я ищу способ получить ggplot , чтобы отобразить процент значений в этой категории. Конечно, можно создать другую переменную с вычисленным процентом и построить график, но мне приходится делать это несколько десятков раз, и я надеюсь добиться этого с помощью одной команды.

Я экспериментировал с чем-то вроде

qplot(mydataf) +
  stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
  scale_y_continuous(formatter = "percent")

] но я должен использовать его неправильно, так как у меня есть ошибки.

Чтобы легко воспроизвести настройку, вот упрощенный пример:

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.

В реальном случае я, вероятно, буду использовать ggplot вместо qplot , но правильный способ использования stat_bin все еще ускользает от меня.

Я также пробовал эти четыре подхода:

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();

, но все 4 дают:

 Ошибка: ggplot2 не делает

Та же ошибка возникает в простом случае

ggplot (data=mydataf, aes(levels(mydataf))) +
  geom_bar()

, поэтому очевидно, что это связано с тем, как ggplot взаимодействует с одним вектором. Я чешу в затылке, поиск в Google для этой ошибки дает единственный результат .

160
задан Eric Leung 25 August 2018 в 06:13
поделиться