[R] Lattice: How to color the data points in splom() according to the panel they are plotted?

Marius Hofert m_hofert at web.de
Fri Jan 15 16:01:42 CET 2010


Dear ExpeRts,

I have the scatter plot matrix as given below. I would like the different "sub-plots" in the scatter plot matrix to be colored differently. How do I get all points shown in the upper-left plot (on position (1,1) in the scatter plot matrix) to be plotted in blue, and the points shown in the plot to the right (on position (1,2) in the scatter plot matrix) to be plotted in red? More generally, how can I provide a matrix of colors to be used by splom() such that all data points in the corresponding sub-plot of the scatter plot matrix are shown in the specified color?

Cheers,

Marius

Here is the code:

library(lattice)

entrymat=matrix(0,nrow=3,ncol=3)
entrymat[1,2]="black"
entrymat[1,3]="blue"
entrymat[2,3]="red"
entrymat=t(entrymat)

splom(~iris[,1:3],superpanel=function(z,...){
	mymat.df=data.frame(rows=as.vector(row(entrymat)),cols=as.vector(col(entrymat)),entries=as.vector(entrymat))
	mymat.df=subset(mymat.df,cols<rows)
		with(mymat.df,{
			panel.text(x=rows,y=cols,labels=entries)
		})
		panel.pairs(z,upper.panel=panel.splom,lower.panel=function(...){},...)
	},varnames=c("1","2","3")
)



More information about the R-help mailing list