Построение предопределенных функций плотности с использованием ggplot и R - PullRequest
7 голосов
/ 06 октября 2009

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

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?

1 Ответ

12 голосов
/ 06 октября 2009

Секрет счастья в 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...