[R] subset inside a lattice plot using panel.lines

Michael Hopkins michael.hopkins at hopkins-research.com
Mon Aug 4 17:11:04 CEST 2008



Hi R people [duplicate - sorry, just posted HTML by mistake]

Pulling my hair out here trying to get something very simple to work.   
Have a data frame of 774 rows and want to plot first and second half  
on same axes with different colours.  A variable is present call 'row'  
created like this and checked to be OK:

	row <- seq( len=length( variable1 ) )

...so I just want to plot the two subsets where row <= 387 and where  
row > 387.  None of these work properly:

plots both over each other in correct colours
	opt_plot2 <- function( var_string, c, units ) {
	print( xyplot( get(var_string) ~ variable1 | variable2, panel =
	function( x, y, ... ) {
		panel.xyplot( x, y, type ="n", ... )
		panel.grid( h=-1, v=-1, lty=3, lwd=1, col="grey" )
		panel.lines( x, y, col = "red", subset = row <= 387 )
		panel.lines( x, y, col = "dark green", subset = row > 387 )
		},
	}

plots both just in red
	...		panel.lines( x[row <= 387], y[row <= 387], col = "red" )
			panel.lines( x[row > 387], y[row > 387], col = "dark green" )

first <- (row <= 387)
second <- (row > 387)

plots both over each other in correct colours
	...		panel.lines( x, y, col = "red", subset = first )
			panel.lines( x, y, col = "dark green", subset = second )
plots both just in red
	...		panel.lines( x[first], y[first], col = "red" )
			panel.lines( x[second], y[second], col = "dark green" )


I'm feeling frustrated and a bit stupid but should this be so  
difficult?  Any help or tips on what I am doing wrong greatly  
appreciated.

TIA

Michael

______________________________________________

     Hopkins Research      Touch the Future



More information about the R-help mailing list