Использование ggplot2 geom_bar — это способ подмножества двух факторов на оси x и группирования пар внутри них?

#r #ggplot2 #grouping #subset #factors

#r #ggplot2 #группировка #подмножество #факторы

Вопрос:

Мой набор данных содержит уровни глотталов, используемых в речи детей и лиц, осуществляющих уход за ними. Факторами являются Speaker (a, amum, b, bmum …), Category (ребенок, опекун) и Pair (a и amum …).

Мой график показывает 22 уровня глоттализации говорящих, используя следующий код:

 ggplot(data1, aes(x = Speaker, fill=Glottals, colour = Category))   
  geom_bar(position ="fill")   scale_fill_manual(values = c("White", "grey"))   
  theme_minimal()   ggtitle ("Percent glottals for caregiver pairs")   ylab("Percent")   scale_y_continuous(labels = scales::percent)   xlab("Speaker")   theme_bw()   theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())   theme(axis.text.x = element_text(angle = 45, hjust = 1))   theme(legend.position = "none")
 

со следующим выводом:

введите описание изображения здесь

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

 A tibble: 3,303 x 15
   Context Transcript   Pair  Speaker Ch_Gender   Age Category    ID Gender Before               Text   After   Phon         Glottals Sitcon 
   <fct>   <fct>        <fct> <fct>   <fct>     <dbl> <fct>    <int> <fct>  <fct>                <fct>  <fct>   <fct>        <fct>    <fct>  
 1 Home    David_H1.trs David David   M           3.2 Child        3 M      "It's not* coming"   out    ""      coda pause   t        routine
 2 Home    David_H1.trs David David   M           3.2 Child        3 M      "I'll (inc)"         that   "out."  coda vowel   ?        routine
 3 Home    David_H1.trs David David   M           3.2 Child        3 M      "I'll (inc) that"    out.   ""      coda pause   ?        routine
 4 Home    David_H1.trs David David   M           3.2 Child        3 M      ""                   Butter ""      Intervocalic t        routine
 5 Home    David_H1.trs David David   M           3.2 Child        3 M      ""                   Butter "Flour" Intervocalic t        routine
 6 Home    David_H1.trs David David   M           3.2 Child        3 M      "Mummy there's the"  butter ""      Intervocalic t        routine
 7 Home    David_H1.trs David David   M           3.2 Child        3 M      "Mummy can you open" that?  ""      coda pause   ?        routine
 8 Home    David_H1.trs David David   M           3.2 Child        3 M      "Mummy I"            want-- ""      coda pause   ?        routine
 9 Home    David_H1.trs David David   M           3.2 Child        3 M      "I want to do the"   butter ""      Intervocalic t        routine
10 Home    David_H1.trs David David   M           3.2 Child        3 M      "I wanna do the"     fruit  ""      coda pause   ?        routine
# ... with 3,293 more rows
> 
 

Ответ №1:

Попробуйте с этим:

 #Code
ggplot(data1, aes(x = Speaker, fill=Glottals, fill = Category))   
geom_bar(position ="fill")   scale_fill_manual(values = c("White", "grey"))   theme_minimal()   ggtitle ("Percent glottals for caregiver pairs")   ylab("Percent")   scale_y_continuous(labels = scales::percent)   xlab("Speaker")   theme_bw()   theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())   theme(axis.text.x = element_text(angle = 45, hjust = 1))   theme(legend.position = "none")
 

Комментарии:

1. Большое спасибо за код. Возможно ли иметь два цвета (ребенок и воспитатель) и располагать каждую пару на расстоянии от следующей?

2. @Marj Мне нужно было бы просмотреть ваши данные. Не могли бы вы, пожалуйста, использовать dput(data1) и вставить выходные данные для редактирования вашего вопроса?

3. Я новичок в этом. Как мне отправить свой набор данных?

4. Вы можете использовать dput(data1) и скопировать результат, а затем нажать «Изменить» в нижней части вашего вопроса. Вставьте это и сохраните изменения.