2016-12-20 1 views
0

После успешно построены категоричны против категориальных данныхggplot + scale_size_area, как показывают пропорции от другого кота переменной

ggplot(data=data_big, aes(job, education)) + 
    geom_count() + 
    scale_size_area(max_size = 12)+ 
    theme_bw()+ 
    theme(axis.text.x=element_text(angle=45,hjust=1)) 

cat vs cat in points

Я хотел бы добавить одно измерение делает эти очки "мини круговой диаграммы. В основном я хочу добавить информацию о других (двоичных) категориальных данных.

Я рассчитывается эти пропорции с

data_big %>% group_by(job,education,y) %>% summarise(n=n()) %>% mutate(rel.freq = round(100 * n/sum(n), 2))) 

давая таблицу как (неполный ТПС)

работы образования г/пд rel.freq

admin. illiterate no 1 100.00 
admin. basic.4y yes 10 12.99 
admin. basic.4y no 67 87.01 
admin. basic.6y yes 8 5.30 
admin. basic.6y no 143 94.70 
admin. basic.9y yes 42 8.42 
admin. basic.9y no 457 91.58 
admin. high.school yes 382 11.47 
admin. high.school no 2947 88.53 
admin. professional.course yes 49 13.50 
admin. professional.course no 314 86.50 
admin. university.degree yes 823 14.31 
admin. university.degree no 4930 85.69 
admin. unknown yes 38 15.26 
admin. unknown no 211 84.74 
blue-collar illiterate no 8 100.00 
blue-collar basic.4y yes 123 5.31 
blue-collar basic.4y no 2195 94.69 
blue-collar basic.6y yes 107 7.50 
blue-collar basic.6y no 1319 92.50 
blue-collar basic.9y yes 240 6.62 
blue-collar basic.9y no 3383 93.38 
blue-collar high.school yes 94 10.71 
blue-collar high.school no 784 89.29 
blue-collar professional.course yes 41 9.05 
blue-collar professional.course no 412 90.95 
blue-collar university.degree yes 9 9.57 
blue-collar university.degree no 85 90.43 
blue-collar unknown yes 24 5.29 
blue-collar unknown no 430 94.71 
entrepreneur illiterate yes 1 50.00 
entrepreneur illiterate no 1 50.00 

Как я могу добавить rel.freq в мой первый сюжет?

Что я пробовал:

но как-то объясняет, как показать пропорцию на основе одного из «первоначальных» категорий, а не третий один ,

Edit: После обмена с @ Натан, который указал мне на пути к лучшему направлении, я сумел добраться до этого:

final

+0

Я не знаю, как вы можете сделать мини-диаграммы пирога, но бы использовать заполнить эстетическую быть приемлемым? – Nate

+0

@NathanDay да, цель состоит в том, чтобы показать пропорции этой третьей двоичной переменной –

+1

'geom_scatterpie()'? https://cran.r-project.org/web/packages/scatterpie/vignettes/scatterpie.html (многие котята умрут, если вы сделаете это tho :-) – hrbrmstr

ответ

0

просто оставить geom_count позади и делать то, что она делает с новой колонки:

# added a few new rows for multiple jobs 
job  education y/n q rel.freq 
admin. illiterate no 1 100.00 
admin. basic.4y yes 10 12.99 
admin. basic.4y no 67 87.01 
admin. basic.6y yes 8 5.30 
admin. basic.6y no 143 94.70 
admin. basic.9y yes 42 8.42 
tech basic.9y no 22 10 
tech basic.4y no 58 50 

может быть, вы хотите sum(q) здесь вместо:

# this is all geom_count really does but it's ornery with aes(fill) 
data_big <- data_big %>% group_by(education, job) %>% mutate(cnt = sum(q)) 

# color for effect 
ggplot(data=data_big, aes(job, education)) + 
    geom_point(aes(size = cnt, fill = rel.freq),shape = 21) + 
    scale_size_area(max_size = 12, name = "Count")+ 
    scale_fill_distiller(palette = "RdBu", name = "Rel.Freq") + 
    theme_bw()+ 
    theme(axis.text.x=element_text(angle=45,hjust=1)) 

enter image description here

или вы можете воспользоваться огранкой для отображения data_big$y/n так:

data_big <- data_big %>% group_by(education, job, `y/n`) %>% mutate(cnt = sum(q)) 

ggplot(data=data_big, aes(job, education)) + 
    geom_point(aes(size = cnt, fill = rel.freq),shape = 21) + 
    scale_size_area(max_size = 12, name = "Count")+ 
    scale_fill_distiller(palette = "RdBu", name = "Rel.Freq") + 
    theme_bw()+ 
    facet_wrap(~`y/n`) + 
    theme(axis.text.x=element_text(angle=45,hjust=1)) 

enter image description here

+0

Эй, @Nathan Day и thx. Счет кажется нечетным –

+0

Эй, @ День Натана и thx. Счет кажется нечетным 1) admin + basic.4y имеет кол-во в общей сложности 77 2) admin + basic.6y имеет счет в общей сложности 151 –

+0

Эй, @ День Натана и thx. Счет кажется нечетным 1. admin + basic.4y имеет кол-во в общей сложности 77 2. admin + basic.6y имеет счетчик в целом 151 , но вот эта область одинакова (и метки указывают на гораздо более низкие значения) –

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