2016-03-10 4 views
4

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

Мне удалось создать штабелированный участок с использованием переменной «пол» для заполнения, но я хочу, чтобы график показывал пропорцию между этой переменной. Я знаю, что использование (..count ..)/sum (.. count) и scale_y может изменить ось y так, чтобы она показывала проценты, но я не могу найти способ использовать ее для того, что я хочу. Вручную сделать отдельный кадр данных с значениями частоты [edit], отражающими проценты, также возможно, но я действительно заинтересован в поиске способа использования только ggplot.

This is what the plot currently looks like:

Это текущий код:

workday<-ggplot(student,aes(x=Dalc2,fill=sex)) 
plot1<-workday+geom_bar()+facet_wrap(~romantic2)+labs(title="Workday Alcohol Consumption",y="Number of Respondents",x="Response")+ylim(0,300) 

Я знаю, что это довольно основная проблема, но любое просветление на этом было бы весьма признателен.

(набор данных из uci.edu)

EDIT:

Для тех, кто заинтересован в растворе, R.BOT (много спасибо!) Предложили использовать geom_bar(position="fill")

добавления Кроме того, это изменить ось у: scale_y_continuous(labels=percent)

This is what the final graph looks like

ответ

9

ggplot online documentation имеет хороший пример штабелированных баров до 100%. Я не могу адаптировать ваш код, поскольку вы не предоставили данные. Например, см.

# http://docs.ggplot2.org/current/geom_bar.html 
require(ggplot2) 

g <- ggplot(mpg, aes(class)) 
g + geom_bar(aes(fill = drv), position = "fill") 

position = "fill" должно получить то, что вы хотите.

+0

Не могу поверить, что я пропустил это один час после нескольких часов, пытаясь найти ответ. Куча благодарности, это работало как шарм! – dizzygirl

Смежные вопросы