Функция плотности ggplot2, определяющая масштабный коэффициент scale_y_continuous - PullRequest
0 голосов
/ 18 февраля 2020

, поэтому я пытался поместить свою функцию KDE в свою гистограмму, и мне удалось это сделать, однако, когда я пытаюсь масштабировать se c .axis = sec_axis (~ ./# число), я не могу сопоставьте его с моей гистограммой, есть ли способ заставить его автоматически выбирать, какое число отображать для получения наилучшего совпадения.

код, который я использую:

a <- ggplot(birds, aes(birds$`Log10(Total Average)`))+
  geom_histogram(col = 'black', fill = 'white', binwidth = 0.2)+
  labs(x = 'Log10 total body mass (kg)', y = 'Frequency', title = 'Average total body mass (kg) of bird species (male adn female) in KNP')
a + geom_density(aes(y=..count..), col=2, size=1)+
  scale_y_continuous(sec.axis = sec_axis(~./40, name = "Density"))

enter image description here

1 Ответ

0 голосов
/ 19 февраля 2020

Как и в предыдущем посте, вы не предоставили воспроизводимый пример набора данных ... поэтому трудно найти решение, которое будет работать для ваших данных.

Одним из способов является вычисление максимального количества на бункеры и максимального значения функции плотности, затем вы можете составить коэффициент и применить его к geom_density

set.seed(123)
df <- data.frame(Total_average = rnorm(100,0,2))
binwidth = 0.2

Seq <- seq(floor(min(df$Total_average)), ceiling(max(df$Total_average)), by = binwidth)

# Determine max count per bins
Max_HIST <- max(hist(df$Total_average, breaks = Seq)$counts)

# Determine the max of the density
Max_Dens <- max(density(df$Total_average)$y)

Ratio <- Max_HIST / Max_Dens

library(ggplot2)
ggplot(df, aes(Total_average))+
  geom_histogram(col = 'black', fill = 'white',binwidth = binwidth)+
  geom_density(aes(y = ..density..*Ratio))+
  scale_y_continuous(sec.axis = sec_axis(~./Ratio, name = "Density"))

enter image description here

Отвечает ли он на ваш вопрос?

Если нет, пожалуйста, предоставьте воспроизводимый пример вашего набора данных, следуя этому руководству: Как сделать отличный R Воспроизводимый пример


Примечание: по некоторым причинам кажется, что функции geom_histogram и hist не рассчитывают количество бинов одинаковым образом .... на данный момент я не нет хорошего объяснения этому.

...