[R] pairs() uses col argument for axes coloring
Anne York
york at zipcon.net
Fri Jul 8 17:20:39 CEST 2005
A work-around for this problem was posted on April 7 by Bill
Venables and Deepayan Sarkar using a panel function:
Anne
On Thu, 7 Apr 2005, Deepayan Sarkar wrote:
DS > On Thursday 07 April 2005 17:51, Anne York wrote:
DS > > The following command produces red axis line in a
pairs
DS > > plot:
DS > >
DS > > pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species",
DS > > pch = "+", col = c("red", "green3", "blue")[unclass(iris$Species)])
DS > >
DS > >
DS > > Trying to fool pairs in the following way produces
the
DS > > same plot as above:
DS > >
DS > > pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species",pch =
DS > > "+", col = c("black", "red", "green3", "blue")[ 1+
DS > > unclass(iris$Species)])
DS > >
DS > > One very kludgy work-around is to define a new level 1, say
DS > > "foo" in the first row of iris:
DS > >
DS > > iris2=iris
DS > > iris2$Species = as.character(iris2$Species)
DS > > iris2$Species[1]="foo"
DS > > iris2$Species = factor(iris2$Species)
DS > >
DS > > pairs(iris2[1:4], main = "Anderson's Iris Data -- 3
DS > > species", pch = "+",
DS > > col = c( "black","red", "green3","blue")[
unclass(iris2$Species)])
DS > >
DS > > However, if any other row is redefined, the red-axis
DS > > persists. For example:
DS > >
DS > > iris2=iris
DS > > iris2$Species = as.character(iris2$Species)
DS > > iris2$Species[3]="foo"
DS > > iris2$Species = factor(iris2$Species)
DS > >
DS > >
DS > > pairs(iris2[1:4], main = "Anderson's Iris Data -- 3
DS > > species", pch = "+",
DS > > col = c( "black","red", "green3","blue")[ nclass(iris2$Species)])
DS > >
DS > > I'd appreciate suggestions for a simpler work-around.
DS >
DS > One possibility is something along the lines of
DS >
DS > pairs(iris[1:4],
DS > panel = function(...)
DS > points(...,
DS > col = c("red", "green3", "blue")
DS > [unclass(iris$Species)] ))
DS >
DS > Deepayan
DS >
DS >
On Fri, 8 Jul 2005, Olaf Mersmann wrote:
OM > Hi list,
OM >
OM > not sure if this is the wanted behavior, but running the following code:
OM >
OM > > version
OM > platform i386-pc-mingw32
OM > arch i386
OM > os mingw32
OM > system i386, mingw32
OM > status
OM > major 2
OM > minor 1.1
OM > year 2005
OM > month 06
OM > day 20
OM > language R
OM > > n <- 500
OM > > d <- 4
OM > > m <- matrix(runif(n*d, -1, 1), ncol=d)
OM > > c <- hsv(apply(m, 1, function(x) {sum(x*x)/d}), 1, 1)
OM > > pairs(m, col=c)
OM >
OM > gives me the desired coloring of the points but also colors the axes.
OM > Looking at the source for pairs() suggests, that this is the case
OM > because col is part of the ... argument list which is passed on to
OM > localAxis (and from there to axis). Wouldn't it be more approptiate to
OM > use the same color box() uses to draw the border around each
OM > scatterplot? If yes, should I open a bug for this or how would such a
OM > feature request be handled?
OM >
OM > -- Olaf Mersmann
OM >
OM > ______________________________________________
OM > R-help at stat.math.ethz.ch mailing list
OM > https://stat.ethz.ch/mailman/listinfo/r-help
OM > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
OM >
OM >
More information about the R-help
mailing list