Как я могу создать (100%) гистограмму с накоплением в R?

Мой набор данных:

У меня есть данные в следующем формате (здесь импортированы из файла CSV). Вы можете найти пример набора данных в формате CSV здесь .

PAIR   PREFERENCE
1      5
1      3
1      2
2      4
2      1
2      3

… и так далее. Всего имеется 19 пар, а ПРЕДПОЧТЕНИЕ варьируется от 1 до 5 в виде дискретных значений.


Я пытаюсь достичь:

Мне нужна гистограмма с накоплением, например столбец с высотой 100% для каждой пары, показывающий распределение значений PREFERENCE .

Что-то похожее на «100% составные столбцы» в Excel или (хотя и не совсем то же самое, так называемый «мозаичный график»):


То, что я пробовал:

Я решил, что это будет проще всего использовать ggplot2 , но я даже не знаю, с чего начать. Я знаю, что могу создать простую гистограмму с чем-то вроде:

ggplot(d, aes(x=factor(PAIR), y=factor(PREFERENCE))) + geom_bar(position="fill")

… но это меня не очень продвинет. Итак, я попробовал это, и это приближает меня к тому, чего я пытаюсь достичь, но, полагаю, он все еще использует счетчик PREFERENCE ? Обратите внимание на то, что ylab здесь является «счетчиком», а значения варьируются до 19.

qplot(factor(PAIR), data=d, geom="bar", fill=factor(PREFERENCE_FIXED))

Результаты в:

enter image description here

  • Итак, что мне нужно сделать, чтобы столбики с накоплением отображали гистограмму?
  • Или они уже это делают?
  • Если да, то что мне нужно изменить, чтобы надписи были правильными (например,иметь проценты вместо «счетчика»)?

Кстати, это на самом деле не связано с этим вопросом , а лишь частично связано с этим (то есть, вероятно, с той же идеей, но не непрерывные значения, а сгруппированные в столбцы).

7
задан Community 23 May 2017 в 12:25
поделиться