2016-01-21 2 views
-1

Представьте, что я хочу создать гистограмму из таблицы непредвиденных обстоятельств. Данные следующим образом:R barplot: Столбцы разной высоты

df<-data.frame(read.table(header = TRUE, text = 
"Age Gender Mobile 
13 Male 1 
14 Female 1 
18 Female 1 
13 Male 1 
13 Female 1 
14 Female 0 
16 Male 1 
16 Female 0 
16 Male 0 
20 Male 0 
14 Male 0 
13 Female 0 
25 Male 1 
13 Female 0 
24 Female 0")) 

Я затем создать таблицу на случай непредвиденных обстоятельств (в данном случае я просто заинтересован в подмножестве данных):

df$Gender<-factor(df$Gender) 
df$Mobile<-factor(df$Mobile) 
table1<-prop.table(xtabs(~Mobile+Age, df[df$Gender=="Female",])) 

Я затем создать гистограмму:

barplot (table1)

Это делает работу. Но столбцы не имеют одинаковой высоты. это не выглядит «хорошо».

enter image description here

Я хотел бы получить столбцы выровненные. что я могу сделать? Заранее спасибо!

+0

Неясно мне, что вы просите. Не могли бы вы как-нибудь проиллюстрировать желаемое поведение? Также см .: [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –

+0

Почему бары должны быть одинаковой высоты ??? –

ответ

1

используется prop.tableбез в margin аргумента, поэтому она вычисляет общие частоты, а не строки или столбца частоты. Вы хотите, чтобы частоты столбцов имели полосы одинаковой высоты. Попробуйте это:

table1<-prop.table(xtabs(~Mobile+Age, df[df$Gender=="Female",]),margin=2) 

barplot(table1) 

enter image description here

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