Данные гистограммы R в строках - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь построить график в R с такими данными, как:

sex ethnicity x2015 x2016 x2017
-------------------------------

male    dutch      112    117   116   
female  dutch      114    118   120
female  german     102    101   99
etc     

Я хочу сделать диаграмму Барта из каждой строки данных ...

Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать ggplot2 пакет, используя stat = identity и facet_wrap.Кроме того, вы можете использовать функцию melt из пакета reshape2, чтобы преобразовать данные, удобные для использования в ggplot2 - из широкого в узкий формат набора данных.Пожалуйста, смотрите код ниже:

library(ggplot2)
library(reshape2)

data <- structure(list(sex = structure(c(2L, 1L, 1L), .Label = c("female", 
"male"), class = "factor"), ethnicity = structure(c(1L, 1L, 2L
), .Label = c("dutch", "german"), class = "factor"), x2015 = c(112L, 
114L, 102L), x2016 = c(117L, 118L, 101L), x2017 = c(116L, 120L, 
99L)), class = "data.frame", row.names = c(NA, -3L))

df <- melt(data)

ggplot(df, aes(x = ethnicity, y = value, fill = variable)) +
  geom_bar(stat = "identity") +
  facet_wrap(~ sex)

Выход: enter image description here

...