Geom bar - уклонение от популяции, состоящей из двух разных переменных - PullRequest
0 голосов
/ 16 мая 2019

Я хочу построить график, который бы отображал распределение (гистограмму) популяции, состоящей из женщин и мужчин, на одну geom_bar относительно возраста.

Было бы здорово, если бы это выглядело примерно так:

https://i.stack.imgur.com/0DPZ3.png

Это мои данные:

> head(Oriflame)
# A tibble: 6 x 3
  Age   Females Males
  <chr>   <dbl> <dbl>
1 14-20   11655  1014
2 20-25   23977  2372
3 25-30   22685  2243
4 30-40   42855  4761
5 40-50   32848  3649
6 50-60   18295  2261
7 60-70   11868  1467
8 70+     5198   778

Итак, я создал два следующих сюжета:

ggplot(Oriflame, aes(x=Oriflame$Age, y=Oriflame$Females)) + geom_bar(stat = "identity")

ggplot(Oriflame, aes(x=Oriflame$Age, y=Oriflame$Males)) + geom_bar(stat = "identity")

И все, что я хотел бы сделать, это объединить / наложить их на один участок с различием заливки / цвета женщин и мужчин. Но я не могу понять, как их избежать.

1 Ответ

1 голос
/ 16 мая 2019

Решение будет относительно простым: вы преобразуете данные из широкого формата в длинный:

df <- reshape2::melt(Oriflame)

и задаете заливку в вашем графике variable, которая теперь кодируетпол.Затем вы используете position = "dodge" в geom_col(), что является сокращением для geom_bar(stat = "identity").

ggplot(df, aes(Age, value, fill = variable)) +
  geom_col(position = "dodge") 

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...