Как вы группируете свои данные для гистограммы - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть набор данных о годе рождения людей.Я хочу построить гистограмму, но так как я работаю с довольно большим набором данных, я хотел бы сгруппировать свои данные в классы 5. Например, в 1985 году родилось 30 человек, но на моей гистограмме я хочу, чтобы она показываласьмне, что частота составляет 6.

Это код, который я до сих пор для моей гистограммы.

ggplot(date, aes(date$year)) + 
  geom_histogram(colour = "black") + 
  labs(title = "...", x = "year", y = "frequency")

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

С гистограммой:

library(dplyr)
library(ggplot2)

dates_df <- data.frame(year = sample(1950:2018, size = 100000,replace = TRUE)) # randomly generated years

classes <- 5  

dates_df %>% group_by(year) %>% summarise(cnt = n()) %>% 
  ggplot(aes(x= year, y = cnt/classes)) + 
  geom_col(colour = "black") + 
  theme_bw()
0 голосов
/ 03 декабря 2018

Вы также можете попробовать это:

require(data.table)
library(dplyr)
library(ggplot2)

fake_data <- data.table(name = c('John', 'Peter', 'Alan', 'James', 'Jack', 'Elena', 'Maria'),
                        year = c(2018, 2018, 2018, 2017, 2016, 2017, 2018))

fake_data %>%
group_by(year) %>%
summarize(numb_people = length(unique(name)),
        number_people_freq = length(unique(name))/ 5) %>%
as.data.table() %>%
ggplot(., aes(year)) +
        geom_bar(aes(y = number_people_freq), stat = 'identity') +
        labs(title = "...", x = "year", y = "frequency")]
0 голосов
/ 03 декабря 2018

Вы можете просто изменить метки на оси Y, чтобы отразить желаемое преобразование:

ggplot(date, aes(year)) + 
  geom_histogram(colour = "black") + 
  labs(title = "...", x = "year", y = "frequency") + 
  scale_y_continuous(labels=function(x) x/5)

Вот пример с некоторыми поддельными данными:

Гистограмма исходных поддельных данныхбез преобразования:

enter image description here

Точно такие же данные, с добавленной строкой scale_y_continuous:

enter image description here

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