Работа с различными размерами выборки для фасетных гистограмм в ggplot2 - PullRequest
0 голосов
/ 20 сентября 2018

Я бы хотел сделать гистограммы с накоплением (facet_grid) в ggplot2 по годам.Годы имеют разные размеры выборки.Я не смог заставить ..density.. производить правильные пропорции для каждой ячейки гистограммы.Итак, я использовал ..count.. / (номер выборки).Из моего прочтения преобразования статистики ..count.. вы не можете выполнить операцию с объектом (например, nrow (data)).Как я могу получить эти гистограммы с разным размером выборки?Формат в приведенном ниже коде приведет к созданию фигуры, которая соответствует другим цифрам для отчета, поэтому я бы хотел использовать ggplot2, но, возможно, есть и другие пакеты.Вот пример:

d1 <- as.data.frame(round(rnorm(121, 86, 28), 0))
colnames(d1) <- "Length"
d1$Year <- "2015"

d2 <- as.data.frame(round(rnorm(86, 70, 32), 0))
colnames(d2) <- "Length"
d2$Year <- "2016"

D <- rbind(d1, d2)

ggplot(D, aes(x = Length)) +
  geom_histogram(aes(y = ..count../nrow(D)), 
                 breaks=seq(0, 160, by = 3), 
                 col="black", 
                 fill="grey48", 
                 alpha = .8)+
  labs(title = "Size by Year", x = "Length", y = "frequency") +
  scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +
  theme_bw() + 
  theme(text = element_text(size=16), 
        axis.text.y = element_text(size=12)) +
  geom_vline(aes(xintercept = 95.25), 
             colour = "red", size = 1.3)+
  facet_grid(Year ~ .)

Эта часть ..count../nrow(D) не будет работать и нуждается в размере выборки для каждого года, когда я их получу facet_grid(Year ~ .)

1 Ответ

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

Это то, что вы ищете?Вы не указали, что пошло не так, когда вы использовали ..density.., но кажется, что вам просто нужно масштабировать по ширине бина...density.. масштабируется таким образом, чтобы общая площадь бара составляла 1, а это означает, что каждый столбец имеет высоту ..count.. / (n * binwidth).Вы просто хотите, чтобы высота была ..count.. / n, то есть ..density.. * binwidth.Так что установите binwidth вручную (вы должны сделать это в любом случае) и умножьте его.1013 * (v0.2.0).

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