From Martin Maechler <maechler@stat.math.ethz.ch>  Wed Dec 16 13:22:56 1998
From: Martin Maechler <maechler@stat.math.ethz.ch> (Martin Maechler)
Date: Wed, 16 Dec 1998 14:22:56 +0100
Subject: colors in R [was "Re: legend() buglet 2"]
In-Reply-To: <98Dec15.124852est.13443@mailgate.bank-banque-canada.ca> (message
 from Paul Gilbert on Tue, 15 Dec 1998 12:45:53 -0500)
Message-ID: <199812161322.OAA28146@sophie.ethz.ch>

	[CC: to "R-help", since this should be of wider interest ]

>>>>> "PaulG" == Paul Gilbert <pgilbert@bank-banque-canada.ca> writes:

    PaulG> Perhaps this is not a bug but rather my misunderstanding of lty
    PaulG> and col. I would like to generate a legend for plots as follows:

No, there's definitely no bug here.

    PaulG> par(mfcol = c(2, 1), mar = c(5.1, 6.1, 4.1,  2.1))
    PaulG> matplot(t(matrix(1:8,8,20)), type="l")
    PaulG> par(mfg = c(2, 1, 2, 1))
    PaulG> box(col = 0) #  Rbug workaround. Thanks Martin
    PaulG> legend((par()$usr)[1:2], (par()$usr)[3:4], as.character(1:8),
    PaulG> 	lty=1:8, col=1:8, bty="y")

    PaulG> The lines for 7 and 8 do not appear in the legend.

No!  They do, but you don't see them easily:
> palette()
[1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
[8] "white"  

I.e., col=7 is "yellow"  (per default, you can always change this!)
      col=8 is "white"
both of which are hard to see with a white background.

Try to say first

	par(bg = "gray80") # or something else between white and black

and you will see the  "yellow" and "white".


    PaulG> matplot(t(matrix(1:8,8,20)), type="l", lty=1:8, col=1:8)

    PaulG> they do not appear in the graph.

as above, they do, look at it after   par(bg = "gray")# or "gray80"

For further ``color manipulation'' in R,
please look at the help page for palette and its examples and the further
pages in 'see also'.

As another illustrative example for matplot(), try e.g.,

par(bg="light blue")
palette(heat.colors(20))
matplot(t(matrix(1:20,20, 2)), type="l", lty=1:4, col=1:20, lwd=2)

------

The other ``phenomenon'' you observe really comes from  
matplot()'s default of  "col = 1:6" (and then recycling).
It makes sense to only use ``a few'' different colors in a general matplot
(where lines cross,...).
S default even recycles only four colors  (col=1:4).

Martin
Maechler <maechler@stat.math.ethz.ch>	http://stat.ethz.ch/~maechler/
Seminar fuer Statistik, ETH-Zentrum SOL G1;	Sonneggstr.33
ETH (Federal Inst. Technology)	8092 Zurich	SWITZERLAND
phone: x-41-1-632-3408		fax: ...-1086			<><
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


colors in R [was "Re: legend() buglet 2"]
Martin Maechler