optimization of a graph including multiple plots in one page, with codes

7 views
Skip to first unread message

Mao Jianfeng

unread,
Aug 20, 2009, 11:56:31 PM8/20/09
to ggp...@googlegroups.com
Dear ggplot2-ers,

I want to draw a graph with multiple plots arranged one by one in one page.

I am now struggling with optimization of this kind of graph, but I
have gotten very few progresses. The plots look narrow, unreadable and
uncoordinated in the page.

I want to know how to set the R-graphics' parameters so as to change
the graph into a nice and beautiful one.

Also, I want to know whether and how this work can be implemented
with ggplot2.

dummy data and codes followed here:

# dummy data
factor<-rep(c("Alice","Jone","Mike"),each=100)
factor<-factor(factor)
traits1<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits2<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits3<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits4<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits5<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits6<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits7<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits8<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits9<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits10<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits11<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits12<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits13<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits14<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits15<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits16<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits17<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits18<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits19<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits20<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))
traits21<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
rnorm(100, mean=6, sd=6))

myda<-data.frame(factor,traits1,traits2,traits3,traits4,traits5,traits6,traits7,traits8,traits9,traits10,traits11,traits12,traits13,traits14,traits15,traits16,traits17,traits18,
traits19,traits20,traits21)

# density plot
pdf("densityPlot.pdf")
op <- par(mfrow=c(3,7), oma=c(1,1,1,1))
for (i in 2:22 ){
plot(density(myda[ ,i]), ylim= c(0,
1.25*max(max(density(myda[,i][myda$factor==c("Alice")])$y),

max(density(myda[,i][myda$factor==c("Jone")])$y),

max(density(myda[,i][myda$factor==c("Mike")])$y))),
bty="n",
yaxt="n",xlab=names(myda)[i], ylab="", type="n", main="",
zero.line=FALSE)
lines(density(myda[,i][myda$factor==c("Alice")]), lwd=2,col=2)
lines(density(myda[,i][myda$factor==c("Jone")]), lwd=2,col=3)
lines(density(myda[,i][myda$factor==c("Mike")]), lwd=2,col=4)
polygon(density(myda[,i][myda$factor==c("Alice")]), col =
rgb(1,0,0,0.5))
polygon(density(myda[,i][myda$factor==c("Jone")]), col =
rgb(0,1,0,0.5))
polygon(density(myda[,i][myda$factor==c("Mike")]), col =
rgb(0,0,1,0.5))
legend("topright", legend = c("Alice", "Jone", "Mike"),
col=2:4, pch=22, title= "Students", bty= "n")

}
dev.off()

baptiste auguie

unread,
Aug 21, 2009, 4:35:20 AM8/21/09
to Mao Jianfeng, ggp...@googlegroups.com
Hi,

Try this,


library(ggplot2)
d = melt(myda, id = "factor")

str(d)

p =
ggplot(data=d, mapping=aes(x=value, y=..density..)) +
facet_wrap(~variable)+
stat_density(aes(fill=factor), alpha=0.5, col=NA, position = 'identity') +
stat_density(aes(colour = factor), geom="path", position = 'identity')

print(p)

HTH,


baptiste
--
_____________________________

Baptiste Auguié

School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK

http://newton.ex.ac.uk/research/emag
______________________________
Reply all
Reply to author
Forward
0 new messages