Hi! I am new to R just 3 days in it and i apologize if my questions seem very trivial and consumed your valuable time. I am coding in perl and i stumbled upon R regarding plotting good statistical graphs. I tried the kmean clustering for a large matrix ,say > 150 * 150 . I tried the example code given in the tutorial to perform 2d plot # i ranges from 2 to 10 cl <- kmeans(x, i, 20) plot(x, col = cl$cluster) points(cl$centers, col = 1:i ) I see that there are only 8 colours defined , namely black,red,green,blue,cyan,magenta,yello,gray. How should i set my colour preferences to obtain my palette of colours? I checked in the totorial which talks about R.colors and palatte , but i failed to understand how to set it. Thank You Asha
Hi!
There are more than 8 colors.
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
(cl <- kmeans(x, i, 20))
s <- c("tomato4", "turquoise", "slateblue",
"wheat", "snow", "skyblue",
"peru", "pink")
# see at:
colors()
plot(x, col = s)
points(cl$centers, col = s, pch = 8, cex=2)
Best,
Matthias
> Hi!
>
> I am new to R just 3 days in it and i apologize if my
> questions seem very
> trivial and consumed your valuable time.
>
> I am coding in perl and i stumbled upon R regarding plotting good
> statistical graphs.
>
> I tried the kmean clustering for a large matrix ,say > 150 *
> 150 . I tried
> the example code given in the tutorial to perform 2d plot
>
> # i ranges from 2 to 10
> cl <- kmeans(x, i, 20)
> plot(x, col = cl$cluster)
> points(cl$centers, col = 1:i )
>
> I see that there are only 8 colours defined , namely
> black,red,green,blue,cyan,magenta,yello,gray.
>
> How should i set my colour preferences to obtain my palette
> of colours? I
> checked in the totorial which talks about R.colors and
> palatte , but i
> failed to understand how to set it.
>
> Thank You
>
> Asha
>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read
> the posting guide! http://www.R-project.org/posting-guide.html
>
TEMPL Matthias wrote:> Hi! > > There are more than 8 colors.Yes, e.g. for rgb space there are 16777216, see ?rgb. Uwe Ligges> x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), > matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2)) > > (cl <- kmeans(x, i, 20)) > > s <- c("tomato4", "turquoise", "slateblue", "wheat", "snow", "skyblue", > "peru", "pink") > # see at: > colors() > > plot(x, col = s) > > points(cl$centers, col = s, pch = 8, cex=2) > > > Best, > Matthias > > > > > >>Hi! >> >>I am new to R just 3 days in it and i apologize if my >>questions seem very >>trivial and consumed your valuable time. >> >>I am coding in perl and i stumbled upon R regarding plotting good >>statistical graphs. >> >>I tried the kmean clustering for a large matrix ,say > 150 * >>150 . I tried >>the example code given in the tutorial to perform 2d plot >> >># i ranges from 2 to 10 >>cl <- kmeans(x, i, 20) >>plot(x, col = cl$cluster) >>points(cl$centers, col = 1:i ) >> >>I see that there are only 8 colours defined , namely >>black,red,green,blue,cyan,magenta,yello,gray. >> >>How should i set my colour preferences to obtain my palette >>of colours? I >>checked in the totorial which talks about R.colors and >>palatte , but i >>failed to understand how to set it. >> >>Thank You >> >>Asha >> >> >>______________________________________________ >>R-help at stat.math.ethz.ch mailing list >>https://stat.ethz.ch/mailman/listinfo/r-help >>PLEASE do read >>the posting guide! http://www.R-project.org/posting-guide.html >> > > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
And getting back to your question about the palette
there are a lot of ways to do this
assuming you have just started a session
palette()
# will give
#[1] "black" "red" "green3"
"blue" "cyan"
#[6] "magenta" "yellow" "gray"
palette(rainbow(24)) # There's also 'heat.colors' &
'topo.colors'
palette()
# [1] "red" "#FF4000" "#FF8000"
# [4] "#FFBF00" "yellow" "#BFFF00"
# [7] "#80FF00" "#40FF00" "green"
#[10] "#00FF40" "#00FF80" "#00FFBF"
#[13] "cyan" "deepskyblue" "#0080FF"
#[16] "#0040FF" "blue" "#4000FF"
#[19] "#8000FF" "#BF00FF" "magenta"
#[22] "#FF00BF" "#FF0080" "#FF0040"
palette(rgb((0:15)/15, g=0,b=0,
names=paste("red",0:15,sep=".")))
palette()
# [1] "black" "#110000" "#220000"
"#330000" "#440000"
# [6] "#550000" "#660000" "#770000"
"#880000" "#990000"
#[11] "#AA0000" "#BB0000" "#CC0000"
"#DD0000" "red2"
#[16] "red"
If you are looking to use colours that take account of colour blindness
you could try the package dichromat. (I think 2.1 will have some of this
inbuilt)
Once you look through the help files associated with some of these options you
will find the way that best suits your method of working.
Tom
> -----Original Message-----
> From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de]
> Sent: Wednesday, 30 March 2005 3:18 PM
> To: TEMPL Matthias
> Cc: r-help at stat.math.ethz.ch; Asha Jayanthi
> Subject: Re: [R] 2d plotting and colours
>
>
> TEMPL Matthias wrote:
>
> > Hi!
> >
> > There are more than 8 colors.
>
> Yes, e.g. for rgb space there are 16777216, see ?rgb.
>
> Uwe Ligges
>
>
>
> > x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
> > matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
> >
> > (cl <- kmeans(x, i, 20))
> >
> > s <- c("tomato4", "turquoise",
"slateblue", "wheat",
> "snow", "skyblue",
> > "peru", "pink")
> > # see at:
> > colors()
> >
> > plot(x, col = s)
> >
> > points(cl$centers, col = s, pch = 8, cex=2)
> >
> >
> > Best,
> > Matthias
> >
> >
> >
> >
> >
> >>Hi!
> >>
> >>I am new to R just 3 days in it and i apologize if my
> >>questions seem very
> >>trivial and consumed your valuable time.
> >>
> >>I am coding in perl and i stumbled upon R regarding plotting good
> >>statistical graphs.
> >>
> >>I tried the kmean clustering for a large matrix ,say > 150 *
> >>150 . I tried
> >>the example code given in the tutorial to perform 2d plot
> >>
> >># i ranges from 2 to 10
> >>cl <- kmeans(x, i, 20)
> >>plot(x, col = cl$cluster)
> >>points(cl$centers, col = 1:i )
> >>
> >>I see that there are only 8 colours defined , namely
> >>black,red,green,blue,cyan,magenta,yello,gray.
> >>
> >>How should i set my colour preferences to obtain my palette
> >>of colours? I
> >>checked in the totorial which talks about R.colors and
> >>palatte , but i
> >>failed to understand how to set it.
> >>
> >>Thank You
> >>
> >>Asha
> >>
> >>
> >>______________________________________________
> >>R-help at stat.math.ethz.ch mailing list
> >>https://stat.ethz.ch/mailman/listinfo/r-help
> >>PLEASE do read
> >>the posting guide! http://www.R-project.org/posting-guide.html
> >>
> >
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Since I was only concentrating on colour issues and not on your specific problem
I was just showing the possibilities.
Does this code help
n <- 5
par(mfrow = c(2,2))
palette("default")
barplot(1:25,col = 1:25)
palette(rainbow(n))
barplot(1:25,col = 1:25)
palette(rgb((0:15)/15, g=0,b=0,
names=paste("red",0:15,sep=".")))
barplot(1:25,col = 1:25)
require(cluster)
x <- runif(100) * 8 + 2
cl <- kmeans(x, n)
palette(rainbow(n))
plot(x, col = cl$cluster)
abline(h = cl$centers, lty = 2,col = "grey" )
palette(palette()[order(cl$centers)])
points(x,col = cl$cluster,pch = 20,cex = 0.4)
However you may wish to choose your colours in a way that is different from
cl$cluster which is why I changed the palette before plotting the points. You
should see that they now are ordered from bottom to top of the last plot.
You could also choose to create a vector with your colours and then use the
value in cl$cluster to select the colours
mycols <- rainbow(n)
plot(x,col = mycols[cl$cluster])
Tom
> -----Original Message-----
> From: Asha Jayanthi [mailto:ashajayanthi at hotmail.com]
> Sent: Thursday, 31 March 2005 9:17 AM
> To: r-help at stat.math.ethz.ch
> Subject: RE: [R] 2d plotting and colours
>
>
> Thank you very much.
>
> the code
> plot(x, col = s)
> points(cl$centers, col = s, pch = 8, cex=2)
>
> does not plot the points according to the group colors. The
> plots are used
> to identify the groups by colors
>
> That could be done by
>
> plot(x, col = cl$cluster)
>
> This means that we need to set the default colours , say col
> = cl$cluster =
> a set of group numbers say 1...10 should produce 10 distinct
> colours points
> grouped by colour.
>
> how to do this when you have more than 8 group colours to plot
>
> >From: "Mulholland, Tom" <Tom.Mulholland at
dpi.wa.gov.au>
> >To: <r-help at stat.math.ethz.ch>,"Asha Jayanthi"
> <ashajayanthi at hotmail.com>
> >Subject: RE: [R] 2d plotting and colours
> >Date: Wed, 30 Mar 2005 15:59:46 +0800
> >
> >And getting back to your question about the palette
> >
> >there are a lot of ways to do this
> >
> >assuming you have just started a session
> >
> >palette()
> ># will give
> >#[1] "black" "red" "green3"
"blue" "cyan"
> >#[6] "magenta" "yellow" "gray"
> >
> >palette(rainbow(24)) # There's also 'heat.colors' &
'topo.colors'
> >palette()
> >
> ># [1] "red" "#FF4000"
"#FF8000"
> ># [4] "#FFBF00" "yellow"
"#BFFF00"
> ># [7] "#80FF00" "#40FF00" "green"
> >#[10] "#00FF40" "#00FF80"
"#00FFBF"
> >#[13] "cyan" "deepskyblue"
"#0080FF"
> >#[16] "#0040FF" "blue"
"#4000FF"
> >#[19] "#8000FF" "#BF00FF"
"magenta"
> >#[22] "#FF00BF" "#FF0080"
"#FF0040"
> >
> >palette(rgb((0:15)/15, g=0,b=0,
names=paste("red",0:15,sep=".")))
> >palette()
> ># [1] "black" "#110000" "#220000"
"#330000" "#440000"
> ># [6] "#550000" "#660000" "#770000"
"#880000" "#990000"
> >#[11] "#AA0000" "#BB0000" "#CC0000"
"#DD0000" "red2"
> >#[16] "red"
> >
> >If you are looking to use colours that take account of
> colour blindness
> >you could try the package dichromat. (I think 2.1 will have
> some of this
> >inbuilt)
> >
> >Once you look through the help files associated with some of
> these options
> >you
> >will find the way that best suits your method of working.
> >
> >Tom
> >
> >
> >
> >
> >
> >
> > > -----Original Message-----
> > > From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de]
> > > Sent: Wednesday, 30 March 2005 3:18 PM
> > > To: TEMPL Matthias
> > > Cc: r-help at stat.math.ethz.ch; Asha Jayanthi
> > > Subject: Re: [R] 2d plotting and colours
> > >
> > >
> > > TEMPL Matthias wrote:
> > >
> > > > Hi!
> > > >
> > > > There are more than 8 colors.
> > >
> > > Yes, e.g. for rgb space there are 16777216, see ?rgb.
> > >
> > > Uwe Ligges
> > >
> > >
> > >
> > > > x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
> > > > matrix(rnorm(100, mean = 1, sd = 0.3),
> ncol = 2))
> > > >
> > > > (cl <- kmeans(x, i, 20))
> > > >
> > > > s <- c("tomato4", "turquoise",
"slateblue", "wheat",
> > > "snow", "skyblue",
> > > > "peru", "pink")
> > > > # see at:
> > > > colors()
> > > >
> > > > plot(x, col = s)
> > > >
> > > > points(cl$centers, col = s, pch = 8, cex=2)
> > > >
> > > >
> > > > Best,
> > > > Matthias
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >>Hi!
> > > >>
> > > >>I am new to R just 3 days in it and i apologize if my
> > > >>questions seem very
> > > >>trivial and consumed your valuable time.
> > > >>
> > > >>I am coding in perl and i stumbled upon R regarding
> plotting good
> > > >>statistical graphs.
> > > >>
> > > >>I tried the kmean clustering for a large matrix ,say >
150 *
> > > >>150 . I tried
> > > >>the example code given in the tutorial to perform 2d plot
> > > >>
> > > >># i ranges from 2 to 10
> > > >>cl <- kmeans(x, i, 20)
> > > >>plot(x, col = cl$cluster)
> > > >>points(cl$centers, col = 1:i )
> > > >>
> > > >>I see that there are only 8 colours defined , namely
> > > >>black,red,green,blue,cyan,magenta,yello,gray.
> > > >>
> > > >>How should i set my colour preferences to obtain my
palette
> > > >>of colours? I
> > > >>checked in the totorial which talks about R.colors and
> > > >>palatte , but i
> > > >>failed to understand how to set it.
> > > >>
> > > >>Thank You
> > > >>
> > > >>Asha
> > > >>
I'm not sure that I understand you comment about the other examples not
giving a wide palette. Are you using wide to refer to the difference in colours
rather than the number of choices in the palette? If this is your issue you
should look at the dichromat package that I referred to, in particular the
colorRamp function. You might also want to have a look at the RColorBrewer
package and run the ColorBrewer example. This package specifically deals with
the ability to distinguish one colour from another.As the ColorBrewer website
notes the tool is "designed to help people select good color schemes for
maps and other graphics".
By the way if the mycols code works then
palette(c("brown","orange","tomato"))
plot(x,col = cl$cluster)
should produce exactly the same result.
Tom
> -----Original Message-----
> From: Asha Jayanthi [mailto:ashajayanthi at hotmail.com]
> Sent: Thursday, 31 March 2005 2:36 PM
> To: Mulholland, Tom; r-help at stat.math.ethz.ch
> Subject: RE: [R] 2d plotting and colours
>
>
> Thank you.
>
> mycols <- c("brown","orange","tomato")
> plot(x,col = mycols[cl$cluster])
>
> this works. I can define distinct colours and check the graph.
>
> the rest of the examples does not give a wide palette to choose from
>
> Asha
> >From: "Mulholland, Tom" <Tom.Mulholland at
dpi.wa.gov.au>
> >To: "Asha Jayanthi"
> <ashajayanthi at hotmail.com>,<r-help at stat.math.ethz.ch>
> >Subject: RE: [R] 2d plotting and colours
> >Date: Thu, 31 Mar 2005 10:14:13 +0800
> >
> >Since I was only concentrating on colour issues and not on
> your specific
> >problem I was just showing the possibilities.
> >
> >Does this code help
> >
> >n <- 5
> >par(mfrow = c(2,2))
> >palette("default")
> >barplot(1:25,col = 1:25)
> >palette(rainbow(n))
> >barplot(1:25,col = 1:25)
> >palette(rgb((0:15)/15, g=0,b=0,
names=paste("red",0:15,sep=".")))
> >barplot(1:25,col = 1:25)
> >
> >
> >require(cluster)
> >x <- runif(100) * 8 + 2
> >cl <- kmeans(x, n)
> >palette(rainbow(n))
> >plot(x, col = cl$cluster)
> >abline(h = cl$centers, lty = 2,col = "grey" )
> >palette(palette()[order(cl$centers)])
> >points(x,col = cl$cluster,pch = 20,cex = 0.4)
> >
> >However you may wish to choose your colours in a way that is
> different from
> >cl$cluster which is why I changed the palette before
> plotting the points.
> >You should see that they now are ordered from bottom to top
> of the last
> >plot.
> >
> >You could also choose to create a vector with your colours
> and then use the
> >value in cl$cluster to select the colours
> >
> >mycols <- rainbow(n)
> >plot(x,col = mycols[cl$cluster])
> >
> >Tom
> >
> > > -----Original Message-----
> > > From: Asha Jayanthi [mailto:ashajayanthi at hotmail.com]
> > > Sent: Thursday, 31 March 2005 9:17 AM
> > > To: r-help at stat.math.ethz.ch
> > > Subject: RE: [R] 2d plotting and colours
> > >
> > >
> > > Thank you very much.
> > >
> > > the code
> > > plot(x, col = s)
> > > points(cl$centers, col = s, pch = 8, cex=2)
> > >
> > > does not plot the points according to the group colors. The
> > > plots are used
> > > to identify the groups by colors
> > >
> > > That could be done by
> > >
> > > plot(x, col = cl$cluster)
> > >
> > > This means that we need to set the default colours , say col
> > > = cl$cluster > > > a set of group numbers say 1...10
should produce 10 distinct
> > > colours points
> > > grouped by colour.
> > >
> > > how to do this when you have more than 8 group colours to plot
> > >
> > > >From: "Mulholland, Tom" <Tom.Mulholland at
dpi.wa.gov.au>
> > > >To: <r-help at stat.math.ethz.ch>,"Asha
Jayanthi"
> > > <ashajayanthi at hotmail.com>
> > > >Subject: RE: [R] 2d plotting and colours
> > > >Date: Wed, 30 Mar 2005 15:59:46 +0800
> > > >
> > > >And getting back to your question about the palette
> > > >
> > > >there are a lot of ways to do this
> > > >
> > > >assuming you have just started a session
> > > >
> > > >palette()
> > > ># will give
> > > >#[1] "black" "red"
"green3" "blue" "cyan"
> > > >#[6] "magenta" "yellow" "gray"
> > > >
> > > >palette(rainbow(24)) # There's also
'heat.colors' &
> 'topo.colors'
> > > >palette()
> > > >
> > > ># [1] "red" "#FF4000"
"#FF8000"
> > > ># [4] "#FFBF00" "yellow"
"#BFFF00"
> > > ># [7] "#80FF00" "#40FF00"
"green"
> > > >#[10] "#00FF40" "#00FF80"
"#00FFBF"
> > > >#[13] "cyan" "deepskyblue"
"#0080FF"
> > > >#[16] "#0040FF" "blue"
"#4000FF"
> > > >#[19] "#8000FF" "#BF00FF"
"magenta"
> > > >#[22] "#FF00BF" "#FF0080"
"#FF0040"
> > > >
> > > >palette(rgb((0:15)/15, g=0,b=0,
names=paste("red",0:15,sep=".")))
> > > >palette()
> > > ># [1] "black" "#110000"
"#220000" "#330000" "#440000"
> > > ># [6] "#550000" "#660000"
"#770000" "#880000" "#990000"
> > > >#[11] "#AA0000" "#BB0000"
"#CC0000" "#DD0000" "red2"
> > > >#[16] "red"
> > > >
> > > >If you are looking to use colours that take account of
> > > colour blindness
> > > >you could try the package dichromat. (I think 2.1 will have
> > > some of this
> > > >inbuilt)
> > > >
> > > >Once you look through the help files associated with some of
> > > these options
> > > >you
> > > >will find the way that best suits your method of working.
> > > >
> > > >Tom
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Uwe Ligges [mailto:ligges at
statistik.uni-dortmund.de]
> > > > > Sent: Wednesday, 30 March 2005 3:18 PM
> > > > > To: TEMPL Matthias
> > > > > Cc: r-help at stat.math.ethz.ch; Asha Jayanthi
> > > > > Subject: Re: [R] 2d plotting and colours
> > > > >
> > > > >
> > > > > TEMPL Matthias wrote:
> > > > >
> > > > > > Hi!
> > > > > >
> > > > > > There are more than 8 colors.
> > > > >
> > > > > Yes, e.g. for rgb space there are 16777216, see ?rgb.
> > > > >
> > > > > Uwe Ligges
> > > > >
> > > > >
> > > > >
> > > > > > x <- rbind(matrix(rnorm(100, sd = 0.3), ncol =
2),
> > > > > > matrix(rnorm(100, mean = 1, sd =
0.3),
> > > ncol = 2))
> > > > > >
> > > > > > (cl <- kmeans(x, i, 20))
> > > > > >
> > > > > > s <- c("tomato4",
"turquoise", "slateblue", "wheat",
> > > > > "snow", "skyblue",
> > > > > > "peru", "pink")
> > > > > > # see at:
> > > > > > colors()
> > > > > >
> > > > > > plot(x, col = s)
> > > > > >
> > > > > > points(cl$centers, col = s, pch = 8, cex=2)
> > > > > >
> > > > > >
> > > > > > Best,
> > > > > > Matthias
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >>Hi!
> > > > > >>
> > > > > >>I am new to R just 3 days in it and i apologize
if my
> > > > > >>questions seem very
> > > > > >>trivial and consumed your valuable time.
> > > > > >>
> > > > > >>I am coding in perl and i stumbled upon R
regarding
> > > plotting good
> > > > > >>statistical graphs.
> > > > > >>
> > > > > >>I tried the kmean clustering for a large matrix
,say > 150 *
> > > > > >>150 . I tried
> > > > > >>the example code given in the tutorial to
perform 2d plot
> > > > > >>
> > > > > >># i ranges from 2 to 10
> > > > > >>cl <- kmeans(x, i, 20)
> > > > > >>plot(x, col = cl$cluster)
> > > > > >>points(cl$centers, col = 1:i )
> > > > > >>
> > > > > >>I see that there are only 8 colours defined ,
namely
> > > > > >>black,red,green,blue,cyan,magenta,yello,gray.
> > > > > >>
> > > > > >>How should i set my colour preferences to
obtain my palette
> > > > > >>of colours? I
> > > > > >>checked in the totorial which talks about
R.colors and
> > > > > >>palatte , but i
> > > > > >>failed to understand how to set it.
> > > > > >>
> > > > > >>Thank You
> > > > > >>
> > > > > >>Asha
> > > > > >>
> > > > > >>
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide!
> >http://www.R-project.org/posting-guide.html