Sarah Kinnings
2008-May-22 16:55 UTC
[R] setting specific colours for different groups of points on a scatter plot
Hi, I have a table with three columns of data, let's call these a, b and c. I have produced a scatter plot of a against b, but I would like to colour the points according to their corresponding c values. c takes the value of either 0,1,2,3 or 4 and so I would like to colour all of the points with a c value of 0 one colour, all those with a c value of 1 another colour etc. When I use the following code, it colours the points using default colours, which are not suitable: data<-read.table('abc',header=T, sep="\t") attach(data) library(lattice) xyplot(a~b, col=c) I was therefore wondering how to specify my own set of colours for each of the c values. Any help would really be appreciated as I have spent ages reading through the documentation, but with no luck. Thanks, Sarah
Deepayan Sarkar
2008-May-22 19:04 UTC
[R] setting specific colours for different groups of points on a scatter plot
On 5/22/08, Sarah Kinnings <bssk at leeds.ac.uk> wrote:> Hi, > > I have a table with three columns of data, let's call these a, b and c. I > have produced a scatter plot of a against b, but I would like to colour the > points according to their corresponding c values. c takes the value of > either 0,1,2,3 or 4 and so I would like to colour all of the points with a c > value of 0 one colour, all those with a c value of 1 another colour etc. > When I use the following code, it colours the points using default colours, > which are not suitable: > > data<-read.table('abc',header=T, sep="\t") > attach(data) > library(lattice) > xyplot(a~b, col=c) > > I was therefore wondering how to specify my own set of colours for each of > the c values. Any help would really be appreciated as I have spent ages > reading through the documentation, but with no luck.The recommended way would be mydata<-read.table('abc',header=T, sep="\t") # don't attach library(lattice) xyplot(a~b, data = mydata, groups=c) This would use the default lattice colors (which should be different from the ones you saw). If you don't like them, you could specify your own colors with mycol <- c("blue", "red", "green", "whatever") xyplot(a~b, data = mydata, groups=c, col = mycol) You will probably end up wanting a legend, in which case a better approach is xyplot(a~b, data = mydata, groups=c, par.settings = simpleTheme(col = mycol), auto.key = TRUE) -Deepayan
Maybe Matching Threads
- Scatter plot - using colour to group points?
- Selecting complementary colours
- Identify groups by character point in xyplot legend
- Increasing grayscale value in scatter plot with number of points on particular location
- lattice::xyplot() with one factor for points and another for lines