ggplot не отображает два geom на одной фигуре R - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь построить и geom_histogram, и geom_density на одной фигуре. Когда я строю эти два отдельно друг от друга, я получаю для каждого нужный вывод (гистограмма и график плотности), но когда я пытаюсь объединить их, отображается только гистограмма (независимо от того, какой порядок гистограммы / плотности в коде).

Мой код выглядит так:

ggplot(data=Stack_time, aes(x=values))+geom_density(alpha=0.2, fill="#FF6666")+
  geom_histogram(binwidth = 50, colour="black", fill="#009454")

Я не получаю никакого сообщения об ошибке, но geom_density никогда не отображается в сочетании с geom_histogram.

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Это должно сделать работу, примерно:

data.frame(x=rnorm(1000)) %>% ggplot(aes(x, ..density..)) + geom_histogram(binwidth = 0.2, alpha=0.5) + geom_density(fill="red", alpha=0.2)

0 голосов
/ 02 июня 2019

Поскольку вы не предоставили здесь никаких данных, решение на основе mtcars:

Ваш код почти верен.Вам нужно добавить значение alpha к вашей гистограмме, чтобы вы могли видеть плотность.Но вам также нужно масштабировать данные, поскольку график плотности находится в диапазоне от 0 до 1. Если значения данных превышают 1, график плотности может быть крошечным, и вы его не видите.С помощью функции scale_data, определенной следующим образом, я масштабирую свои данные до диапазона 0-1

df=mtcars
scale_data <- function(x){(x-min(x))/(max(x)-min(x))}
df$mpg2 <- scale_data(df$mpg)
library(ggplot2)
ggplot(data=df, aes(x=mpg2))+geom_density(alpha=0.2, fill="#FF6666")+
  geom_histogram(binwidth = 50, colour="black", fill="#009454", alpha = 0.1)

, что дает ожидаемый результат: plot

Вы можете настроить это решение под свои нужды.Просто масштабируйте данные или график плотности до данных

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