Это вы имели в виду?
Использование диафрагмы набора данных:
library(ggplot2)
library(data.table)
library(reshape2) # for melt(...)
library(plyr) # for .(...)
xx <- with(iris, data.table(id=1:nrow(iris), group=Species,
Sepal.Length, Sepal.Width,Petal.Length, Petal.Width))
# reshape for facetting with ggplot
yy <- melt(xx,id=1:2, variable.name="H", value.name="xval")
yy <- data.table(yy,key="id,group")
ww <- yy[,list(V=H,yval=xval),key="id,group"]
zz <- yy[ww,allow.cartesian=T]
setkey(zz,H,V,group)
zz <- zz[,list(id, group, xval, yval, min.x=min(xval), min.y=min(yval),
range.x=diff(range(xval)),range.y=diff(range(yval))),by="H,V"]
# points colored by group (=species)
# density plots for each variable by group
d <- zz[H==V, list(x=density(xval)$x,
y=mean(min.y)+mean(range.y)*density(xval)$y/max(density(xval)$y)),
by="H,V,group"]
ggp = ggplot(zz)
ggp = ggp + geom_point(subset =.(H!=V),
aes(x=xval, y=yval, color=factor(group)),
size=3, alpha=0.5)
ggp = ggp + geom_line(subset = .(H==V), data=d, aes(x=x, y=y, color=factor(group)))
ggp = ggp + facet_grid(V~H, scales="free")
ggp = ggp + scale_color_discrete(name="Species")
ggp = ggp + labs(x="", y="")
ggp
Я продолжаю слышать, что то же самое можно с помощью ggpairs(...)
в пакете GGally. Мне бы хотелось увидеть фактический пример этого. Документация непостижима. Кроме того, ggpairs(...)
чрезвычайно медленный (в моих руках), особенно с большими наборами данных.
Проверьте '' 'GGally''' пакет для функции' '' ggpairs() '' '. [Этот вопрос также имеет интересное решение] (http://stackoverflow.com/questions/11503902/colouring-ggplots-plotmatrix-by-k-means-clusters). Найдите ответ с помощью функции plotmatrix2. – marbel