Построение предопределенных функций плотности с использованием ggplot и R

StackOverflow https://stackoverflow.com/questions/1523298

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть три набора данных разной длины, и я хотел бы построить функции плотности всех трех на одном графике.Это прямо с базовой графикой:

n <- c(rnorm(10000), rnorm(10000))
a <- c(rnorm(10001), rnorm(10001, 0, 2))
p <- c(rnorm(10002), rnorm(10002, 2, .5))

plot(density(n))
lines(density(a))
lines(density(p))

Это дает мне что-то вроде этого:

альтернативный текст http://www.cerebralmastication.com/wp-content/uploads/2009/10/density.png

Но я действительно хочу сделать это с GGPLOT2, потому что хочу добавить другие функции, доступные только с GGPLOT2.Похоже, что GGPLOT действительно хочет взять мои эмпирические данные и вычислить для меня плотность.И это меня бесит, потому что мои наборы данных имеют разную длину.Итак, как мне отобразить эти три плотности в GGPLOT2?

Это было полезно?

Решение

Секрет счастья в ggplot2 заключается в том, чтобы поместить все в «длинный» (или, я думаю, люди, ориентированные на матрицу, назвали бы «разреженным») формат:

df <- rbind(data.frame(x="n",value=n),
            data.frame(x="a",value=a),
            data.frame(x="p",value=p))
qplot(value, colour=x, data=df, geom="density")

Если вам не нужны цвета:

qplot(value, group=x, data=df, geom="density")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top