2014-02-04 21 views
20

Я хочу наложить несколько графиков плотности в R и знать, что есть несколько способов сделать это, но они не работают для меня по той или иной причине (библиотека 'sm' doesn 't install, и я noob достаточно, чтобы не понимать большую часть кода). Я также попробовал график и пар, но я бы хотел использовать qplot, поскольку он имеет больше параметров конфигурации.ggplot2: графики плотности наложения R

У меня есть данные, сохраненные в этой форме

library(ggplot2) 
x <- read.csv("clipboard", sep="\t", header=FALSE) 
x 
    V1  V2 V3 
1 34  23 24 
2 32  12 32 

, и я хотел бы создать 3 наложены участки со значениями из V1, V2 и V3 с использованием или тонов серого, чтобы заполнить или с использованием dotlines или что-то подобное с легендой. Можете ли вы, ребята, помочь мне?

Спасибо!

ответ

29

Обычно для ggplot и нескольких переменных вам нужно преобразовать в длинный формат из широкого. Я думаю, что это можно сделать без этого, но это тот способ, которым пакет предназначен для работы.

Вот решение, я сгенерировал некоторые данные (3 нормальных распределения по центру вокруг разных точек). Я также сделал несколько гистограмм и ящиков, если вы этого хотите. Параметры альфа контролирует степень прозрачности заливки, если вы используете цвет вместо заливки вы получите только контуры

x <- data.frame(v1=rnorm(100),v2=rnorm(100,1,1),v3=rnorm(100,0,2)) 
library(ggplot2);library(reshape2) 
data<- melt(x) 
ggplot(data,aes(x=value, fill=variable)) + geom_density(alpha=0.25) 
ggplot(data,aes(x=value, fill=variable)) + geom_histogram(alpha=0.25) 
ggplot(data,aes(x=variable, y=value, fill=variable)) + geom_boxplot() 

enter image description here

+0

Это сработало! Вы должны включить библиотеку «reshape» для работы «расплава». Но как только это произойдет, это сработает. Спасибо! –

+0

Этот ответ должен быть в следующем издании книги ggplot. – Pete

3

Для полноты картины, самый основной способ наложения графики на основе фактором является:

ggplot(data, aes(x=value)) + geom_density(aes(group=factor)) 

Но, как @ user1617979 упоминалось, aes(color=factor) и aes(fill=factor), вероятно, более полезны на практике. three density plots overlaid by factor

Смежные вопросы