Skip to content
Back to formatted view

Raw Message

Message-ID: <DE479A9D-656A-45AD-8568-D09E49DD144C@web.de>
Date: 2010-01-15T15:01:42Z
From: Marius Hofert
Subject: Lattice: How to color the data points in splom() according to the panel they are plotted?

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")
)