Как создать сложенную гистограмму, используя базу R? - PullRequest
3 голосов
/ 15 мая 2019

Я изучал подобные вопросы, но не повезло.Вот примерный набор данных, но я использую только переменную «Пол и вес».

structure(list(Name = c("A Lamusi", "Juhamatti Tapio Aaltonen", 
"Andreea Aanei", "Jamale (Djamel-) Aarrass (Ahrass-)", "Nstor Abad Sanjun"
), Sex = c("M", "M", "F", "M", "M"), Age = c(23L, 28L, 22L, 30L, 
23L), Height = c(170L, 184L, 170L, 187L, 167L), Weight = c(60, 
85, 125, 76, 64), Team = c("China", "Finland", "Romania", "France", 
"Spain"), NOC = c("CHN", "FIN", "ROU", "FRA", "ESP"), Games = c("2012 Summer", 
"2014 Winter", "2016 Summer", "2012 Summer", "2016 Summer"), 
    Year = c(2012L, 2014L, 2016L, 2012L, 2016L), Season = c("Summer", 
    "Winter", "Summer", "Summer", "Summer"), City = c("London", 
    "Sochi", "Rio de Janeiro", "London", "Rio de Janeiro"), Sport = c("Judo", 
    "Ice Hockey", "Weightlifting", "Athletics", "Gymnastics"), 
    Event = c("Judo Men's Extra-Lightweight", "Ice Hockey Men's Ice Hockey", 
    "Weightlifting Women's Super-Heavyweight", "Athletics Men's 1,500 metres", 
    "Gymnastics Men's Individual All-Around"), Medal = c(NA, 
    "Bronze", NA, NA, NA), Num_Sports = c("Judo", "Ice Hockey", 
    "Weightlifting", "Athletics", "Gymnastics")), row.names = c("1", 
"2", "3", "4", "5"), class = "data.frame")

Мне нужно создать диаграмму, которая отображает счетчик веса мужчин и женщин.Для этого я использовал ggplot и создал гистограмму с накоплением:

enter image description here

Код для ggplot был прост:

ggplot(data = data, aes(x = Weight, fill = Sex)) + 
    geom_histogram(binwidth = 10, position="stack") 

Однако, Я не знаю, как создать подобный график, используя базу R. Я попытался создать таблицу с весом и полом, а затем построить график, который является решением по этой ссылке: Сложенные гистограммы с использованием R Base Graphics

tab <- table(data$Sex,data$Weight)
barplot(tab)

Но он вернул график со слишком большим количеством баров, поскольку Weight является непрерывной переменной: В графике слишком много баров

Я также пытался hist(tab)и hist(data$Weight), которые, очевидно, также были неверны.

Как я могу заново создать граф, используя базу R?Спасибо!

1 Ответ

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

В ваших примерах данных недостаточно наблюдений, поэтому я просто буду использовать rnorm:

x <- rnorm(100, 10, 1)
y <- rnorm(100, 12, 1)

. Используйте plot для составления ваших гистограмм:

h1 <- hist(x, breaks = 10)
h2 <- hist(y, breaks = 10)

par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)

plot(h1, col = "Red", xlim = c(6, 16), xlab = "Weight", main = NULL)
plot(h2, col = "Blue", xlim = c(6, 16), add = T)

legend(17, 19,c("f", "m"), fill = c("Red", "Blue"), title = "Sex")

stacked histograms

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