Fiche TD avec le logiciel : tdr18
—————
(Ne pas) utiliser des couleurs
J.R. Lobry
—————
L’utilisation de la couleur n’est pas un probleme simple. Ce quevoient les personnes atteintes de deficiences oculaires. Comment peut-on fausser un message ? Les niveaux de gris. Superpositions des cou-leurs transparentes.
Table des matieres
1 Introduction 2
2 Dyschromatopsies 6
3 Niveaux de gris 11
4 Les couleurs 14
5 Couleurs transparentes 20
6 Couleurs definies a priori 22
References 24
1
J.R. Lobry
1 Introduction
Il est indispensable ici de citer Jacques Bertin [1] :
On fait a l’auteur la reputation d’etre contre la couleur. Je suiscontre la couleur qui camoufle l’incompetence et je reste contre tantque l’on croira qu’elle suffit pour representer un ordre, qu’elle per-met de superposer des caracteres jusqu’a la limite de l’absurde, tantqu’elle coutera inutilement des fortunes aux deniers publics dans uneconfusion entre connaissance et publicite, tant que, par son truche-ment, les responsables et la television diffuseront des images fausseset illisibles.
Reprenons l’exemple donne page 220 dans [1], l’information est la suivante :
bertin <- read.table("http://pbil.univ-lyon1.fr/R/donnees/bertin.txt",sep = "\t")
library(ade4)data(elec88)area.plot(elec88$area[1:1845, ], clab = 0.75, lab = bertin[, 2])
1
12
4
−4
−4
−6
3
−2
−7
10
9
4
15
−12
3
−3 0
12
0
10
8
5
−3
−12
2
10
−11 11
8
−14
−4
−3
12
12
8
−7
−1
−5
−3
3
4
1
13
16
−3 −1 0
−12
−5 −6
−8 −6
−9 −2
9
−14
13
5
14
−8
11
4
−8 −11
14
−15
−4
3
−7
6
−14
−2
−3
18
−11
9 18
−5
1
6
0
−10
11
7 −6
1
−8
7 −4
La structuration selon un axe nord-sud est evidente sur la representationsuivante :s.value(elec88$xy[1:89, ], bertin[1:89, 2], contour = elec88$contour,
meth = "squaresize", incl = F)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 2/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
d = 100
−15 −5 5 15
Essayons maintenant de colorier sauvagement cette carte :grey.bck <- greygray <- grey <- function(level) {
pal <- rev(c("black", "turquoise4", "greenyellow", "yellow","orange", "orangered3", "maroon4"))
pal[round(1 + 6 * level)]}area.plot(elec88$area, val = c(bertin[, 2], rep(18, 5)), clab = 0,
sub = "", csub = 3)grey <- gray <- grey.bck
−10] −5] 0] 5] 10] 15]
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 3/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
On obtient une structuration selon un axe est-ouest, et il est impossibled’abstraire cette orientation. La perception des valeurs domine la perceptiondes teintes. Les extremites du spectre sont foncees alors que les couleurs cen-trales sont claires, nous avons tendance a assimiler les deux extremites dansune meme unite perceptive. A egalite de valeur, les couleurs ne sont pas vi-suellement ordonnees, elles ne peuvent donc pas representer une informationordonnee. Voici la palette des couleurs disponibles de meme valeur que les cou-leurs fondamentales saturees :
0 1
Rouge
10 Vert 1
0
Bleu
Voici la palette des couleurs disponibles de meme valeur que les couleursfondamentales a 50 % de saturation, on assombrit globalement tout :
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 4/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
0 1
Rouge
10 Vert 1
0
Bleu
Voici la palette des couleurs disponibles de meme valeur que les couleursprimaires a 100 % de saturation, les couleurs fondamentales ne sont alors plusdisponibles :
0 1
Rouge
10 Vert 1
0
Bleu
Le probleme de l’utilisation des couleurs est resume dans le graphique sui-vant. Les couleurs pures n’ont pas toutes la meme valeur : pour toute couleurpure il existe au moins deux autre couleurs pures que nous percevrons semblablesavant de voir les differences.
n <- 201plot(0, 0, xlim = c(0, 1), ylim = c(0, 2), type = "n", las = 1,
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 5/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
main = "Valeurs des couleurs du spectre sature", xlab = "",ylab = "Valeur")
rb <- rev(rainbow(n, end = 5/6))y <- numeric(n - 1)for (i in seq(0, 1, length = n)[-n]) {
ix <- n * i + 1col <- rb[ix]val <- sum(col2rgb(col))/255rect(i, 0.5, i + 1/n, 1, col = grey(val/2), border = grey(val/2))rect(i, 0, i + 1/n, 0.5, col = col, border = col)y[ix] <- val
}lines(seq(0, 1, length = n - 1), y)
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
2.0
Valeurs des couleurs du spectre sature
Val
eur
Le probleme est que les couleurs pures sont les plus selectives, ce sont cellesque l’on aimerait bien utiliser pour faire ”joli”. Mais vouloir utiliser les spectredes couleurs pures pour representer une variable ordonnee est une grave erreurcar elle impose un ordre completement artificiel, detruisant la perception del’ordre naturel de la variable. Cela peut couter tres cher que de vouloir faire”joli”. Etes-vous bien certain de toujours vouloir utiliser des couleurs ?
2 Dyschromatopsies
L’utilisation de couleurs dans des documents destines a etre diffuses est assezdelicate. Une forte proportion (de l’ordre de 5 %) des individus a des problemesplus ou moins importants pour distinguer certaines couleurs.
Exercice : un scientifique envoie un article avec des figures en couleur a unjournal pour publication. Cet article va etre evalue par trois experts. Quelleest la probabilite pour qu’au moins un expert ait des problemes pour lireles figures en couleur ?[1] 0.142625
Exercice : les genes codants pour les pigments rouges et verts etant a localisa-tion hetrochromosomique, les dyschromatopsies hereditaires ne concernent,
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 6/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
en premiere approximation, que les males. Sachant que la sexe-ratio desexperts est de 0.9, quelle est la probabilite pour qu’au moins un expert aitdes problemes pour lire les figures en couleur ?[1] 0.246429
Exercice : un enseignant donne un cours dans un amphi de 180 etudiants avecdes transparents en couleur. Quelle est la probabilite pour qu’au moins unetudiant ait des problemes pour lire les transparents en couleur.[1] 0.9999022
Exercice : representez graphiquement la probabilite d’avoir au moins une per-sonne ayant des problemes pour voir les couleurs en fonction de la taillede l’auditoire.
0 20 40 60 80 100
0.2
0.4
0.6
0.8
1.0
Un probleme frequent
Taille de l'auditoire
Pro
babi
lite
La bibliotheque dichromat vous permet de tester si votre choix de couleursest acceptable. Elle est basee sur les travaux de Francoise Vienot et collabora-teurs [2]. Ces travaux cherchent a aider les concepteurs de documents a largediffusion en leur permettant de verifier qu’ils sont toujours intelligibles pour lesprotanopes et deuteranopes. L’idee est simplement de simuler ce que voient cespersonnes. L’exemple ci-dessous est tire de [2], il montre que la carte des trans-ports en commun dans la region Ile-de-France est toujours intelligible pour lesprotanopes (a droite) :
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 7/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
La bibliotheque dichromat vous permet tres simplement d’atteindre le memeniveau de professionnalisme. Commencez par faire un graphique en couleur, parexemple :
n <- 20x <- rep(1:n, n)y <- rep(1:n, each = n)couleur <- c("green3", "red")plot(x, y, col = couleur, pch = 19, main = "Un dessin en rouge et vert",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Un dessin en rouge et vert
Les formes les plus communes de deficience dans la perception des couleurssont les dyschromatopsies hereditaires de type protan et deutan correspondanta une difficulte a distinguer le rouge du vert :
library(dichromat)plot(x, y, col = dichromat(couleur, "deutan"), pch = 19, main = "Un dessin en rouge et vert \n vu par les deuteranope",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 8/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Un dessin en rouge et vert vu par les deuteranope
plot(x, y, col = dichromat(couleur, "protan"), pch = 19, main = "Un dessin en rouge et vert \n Vu par les protanopes",xaxt = "n", yaxt = "n", xlab = "", ylab = "")
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Un dessin en rouge et vert Vu par les protanopes
L’utilisation des couleurs est donc extremement delicate car elle risque defausser la perception du message pour une proportion non negligeable des indi-vidus. Pour bien s’en convaincre il suffit de considerer la version colorisee de lacelebre lettre dite de George Sand a Alfred de Musset1 :
1George Sand n’a jamais ecrit de textes erotiques, ceux qui sont publies sur internet sontdes faux fabriques au XIXe siecle (http://www.george-sand.info/).
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 9/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
original
Je suis émue de vous dire que j'ai bien compris l'autre soir que vous aviez toujours une envie folle de me faire danser. Je garde le souvenir de votre baiser et je voudrais bien que ce soit là une preuve que je puisse être aimée par vous. Je suis prête à vous montrer mon affection toute désintéressée et sans cal− cul, et si vous voulez me voir aussi vous dévoiler sans artifice mon âme toute nue, daignez me faire une visite. Nous causerons en amis, franchement. Je vous prouverai que je suis la femme sincère et capable de vous offrir l'affectionla plus profonde comme la plus étroite en amitié, en un mot, la meilleure épouse que vous puissiez rêver puisque votre âme est libre. Pensez que la solitude où j'ha− bite est bien longue, bien dure et souvent difficile. Ainsi en y songeant j'ai l'âme grosse. Accourrez donc vite et venez me la faire oublier. A l'amour que je veux vous sou−mettre.
vu par deuteranope
0
Je suis émue de vous dire que j'ai bien compris l'autre soir que vous aviez toujours une envie folle de me faire danser. Je garde le souvenir de votre baiser et je voudrais bien que ce soit là une preuve que je puisse être aimée par vous. Je suis prête à vous montrer mon affection toute désintéressée et sans cal− cul, et si vous voulez me voir aussi vous dévoiler sans artifice mon âme toute nue, daignez me faire une visite. Nous causerons en amis, franchement. Je vous prouverai que je suis la femme sincère et capable de vous offrir l'affectionla plus profonde comme la plus étroite en amitié, en un mot, la meilleure épouse que vous puissiez rêver puisque votre âme est libre. Pensez que la solitude où j'ha− bite est bien longue, bien dure et souvent difficile. Ainsi en y songeant j'ai l'âme grosse. Accourrez donc vite et venez me la faire oublier. A l'amour que je veux vous sou−mettre.
C’est un probleme tres serieux, si nous reprenons l’exemple de la carte deBertin :
grey.bck <- greygray <- grey <- function(level) {
pal <- rev(dichromat(c("black", "turquoise4", "greenyellow","yellow", "orange", "orangered3", "maroon4"), type = "protan"))
pal[round(1 + 6 * level)]}area.plot(elec88$area, val = c(bertin[, 2], rep(18, 5)), clab = 0,
sub = "", csub = 3)grey <- gray <- grey.bck
−10] −5] 0] 5] 10] 15]
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 10/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
0.0 0.2 0.4 0.6 0.8 1.0
0.00
0.02
0.04
0.06
0.08
0.10
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12
0.13
0.14
0.15
0.16
0.17
0.18
0.19
0.2
0.21
0.22
0.23
0.24
0.25
0.26
0.27
0.28
0.29
0.3
0.31
0.32
0.33
0.34
0.35
0.36
0.37
0.38
0.39
0.4
0.41
0.42
0.43
0.44
0.45
0.46
0.47
0.48
0.49
0.5
0.51
0.52
0.53
0.54
0.55
0.56
0.57
0.58
0.59
0.6
0.61
0.62
0.63
0.64
0.65
0.66
0.67
0.68
0.69
0.7
0.71
0.72
0.73
0.74
0.75
0.76
0.77
0.78
0.79
0.8
0.81
0.82
0.83
0.84
0.85
0.86
0.87
0.88
0.89
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
Fig. 1 – Nuancier des gris avec grey() ou gray().
Nous voyons qu’un protanope verra tres clairement une structure complete-ment orthogonale a la veritable structure des donnees. Etes-vous bien certainde toujours vouloir utiliser des couleurs ?
3 Niveaux de gris
La fonction grey(), que l’on peut egalement orthographier a l’americainegray(), permet de generer tres facilement toutes les nuances de gris entre lenoir (code 0) et le blanc (code 1). Un nuancier est donne dans la figure 1. Lesproblemes de vision des couleurs ne se posent plus avec des niveaux de gris,mais notre perception des gris n’est pas tres bonne dans l’absolu parce que tropdependante du contexte. Le code ci-dessous montre bien que les deux rectanglesgris sont exactement du meme gris, pourtant celui qui est sur un fond clairsemble etre plus sombre :
plot(0, 0, type = "n", xlim = c(0, 2), ylim = 0:1, axes = FALSE,xlab = "", ylab = "", main = "Deux gris identiques...")
rect(0, 0, 1, 1, col = grey(0))rect(1, 0, 2, 1, col = grey(1))rect(0.45, 0.1, 0.55, 0.9, col = grey(0.75), border = grey(0.75))rect(1.45, 0.1, 1.55, 0.9, col = grey(0.75), border = grey(0.75))
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 11/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
Deux gris identiques...
De meme, si nous n’avions pas sous les yeux le code R ayant genere la figuresuivante, il nous serait difficile de croire que le rectangle central est du memegris :
plot(0, 0, type = "n", xlim = 0:1, ylim = 0:1, axes = FALSE, xlab = "",ylab = "", main = "Un seul gris...")
n <- 200for (i in seq(0, 1, length = n)) rect(i, 0, i + 1/n, 1, col = grey(i),
border = grey(i))rect(0.01, 0.45, 0.99, 0.55, col = grey(0.5), border = grey(0.5))
Un seul gris...
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 12/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
Reprendre l’exemple de Bertin pour comparer avec une representation enniveaux de gris :
opar <- par(no.readonly = TRUE)par(mfrow = c(1, 2))s.value(elec88$xy[1:89, ], bertin[1:89, 2], contour = elec88$contour,
meth = "squaresize", incl = F)s.value(elec88$xy[1:89, ], bertin[1:89, 2], contour = elec88$contour,
meth = "greylevel", incl = F)par(opar)
d = 100
−15 −5 5 15
d = 100
−10] −5] 0] 5] 10] 15]
On peut utiliser des couleurs de valeur variable, mais quel est l’interet parrapport a un simple niveau de gris ?
opar <- par(no.readonly = TRUE)par(mfrow = c(1, 2))grey.bck <- greygray <- grey <- function(level) hsv(1, 1, level)s.value(elec88$xy[1:89, ], bertin[1:89, 2], contour = elec88$contour,
meth = "squaresize", incl = F)s.value(elec88$xy[1:89, ], bertin[1:89, 2], contour = elec88$contour,
meth = "greylevel", incl = F)grey <- gray <- grey.bckpar(opar)
d = 100
−15 −5 5 15
d = 100
−10] −5] 0] 5] 10] 15]
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 13/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
Exercice : definir une fonction pour faire le dessin ci-apres. Vous aurez be-soin des fonctions grey(), hist(), density(), lines(), rug(), jitter() etd’utiliser l’argument point-point-point.
x <- c(rnorm(100), rnorm(100, 3))mon.hist(x, adjust = 0.5)
Histogram of x
x
Den
sity
−4 −2 0 2 4 6
0.00
0.05
0.10
0.15
0.20
4 Les couleurs
Il y a 657 couleurs predefinies dans R. Leur liste est donnee par la fonctioncolors() :
colors()[1:10]
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1" "antiquewhite2"[6] "antiquewhite3" "antiquewhite4" "aquamarine" "aquamarine1" "aquamarine2"
Pour choisir une couleur rapidement, les representer dans une grille (figure2) :
couleurs <- colors()couleurs <- couleurs[-(grep("gray", couleurs))]couleurs <- couleurs[-(grep("grey", couleurs))]length(couleurs)
[1] 433
n <- ceiling(sqrt(length(couleurs)))w <- matrix(0, n, n)opar <- par(no.readonly = TRUE)par(mar = c(0.1, 0.1, 0.1, 0.1))plot(c(1, n + 1), c(1, n + 1), type = "n")rect(col(w), row(w), col(w) + 1, row(w) + 1, col = couleurs)editcolor <- function() {
w <- as.numeric(locator(1))w <- floor(w)num <- (w[1] - 1) * n + w[2]return(couleurs[num])
}par(opar)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 14/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
Fig. 2 – Grille des couleurs accessibles par leur nom. Utiliser editcolor pouravoir le nom en cliquant dans un carre
.
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 15/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
La fonction col2rgb() permet de recuperer le code RGB (Red Green Bleu)des couleurs :
library(scatterplot3d)cubedraw <- function(res3d, min = 0, max = 255, cex = 2, text. = FALSE) {
cube01 <- rbind(c(0, 0, 1), 0, c(1, 0, 0), c(1, 1, 0), 1, c(0,1, 1), c(1, 0, 1), c(0, 1, 0))
cub <- min + (max - min) * cube01res3d$points3d(cub[c(1:6, 1, 7, 3, 7, 5), ], cex = cex, type = "b",
lty = 1)res3d$points3d(cub[c(2, 8, 4, 8, 6), ], cex = cex, type = "b",
lty = 3)if (text.)
text(res3d$xyz.convert(cub), labels = 1:nrow(cub), col = "tomato",cex = 2)
}cc <- colors()crgb <- t(col2rgb(cc))par(xpd = TRUE)rr <- scatterplot3d(crgb, color = cc, box = FALSE, angle = 24, main = "Les couleurs pre-definies dans l'espace RVB",
xlab = "rouge", ylab = "vert", zlab = "bleu", xlim = c(-50,300), ylim = c(-50, 300), zlim = c(-50, 300))
cubedraw(rr)
Les couleurs pre−definies dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rouge
vert
bleu
●●
●●
●
●
●
●
●
●●
●●
●●●●
●
●
●●
●●
●
●
●●
●●
●●
●●
●
●
●●
●
●●
●
●●●
●●●
●
●●
●●●
●
●●
●●●
●●●
●
●●●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●●
●●
●●
●● ●●
●
● ●●●●
●
●●●
●●
●●
●●●
●●
●●
●
●
●●
●● ●
●
●●
●●
●●
●
●●
● ●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●●●● ●●
●
●
●●
●
●
●●
●●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●●
●●
●
●●
●
●
●
●
●
●●●
●
●●
●
●
●●●
●●
●
●●
●
●
●●●●
●
●●
●
●●
●
●
●●●
●●
●
●●
●●● ●● ●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●
●●
●●
●●●
●
●
●●●
●●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●●
●
●●●●
●
●
●
●
●●
●
●●
●
● ●●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●●●
●
●●●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
● ●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●●●●●
●
●
●
●●●
●
●●●
●
●
●
●
●
●●
●
●●
●
●●●
●
●
●●
●
●●●●
●
●●
●
●●
●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●● ●
●
●
●●●
●●
●● ●
●
●
●
●
●●
●
●
●
●●
●
●● ●
●
●●
●
●
●
●● ●●●
●
●●●
●
●
●
●●
●
●● ●
●
●● ●
●
●
●
●●
●
●
●●
●
●●
●
●● ●
●
●●
●
●●
●●
●●
●
●
●●●●●●
●
●●●●●● ● ● ● ●●
●●
●
●
●
●
●●
●●
●
●
●●●
●
●
●●
●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
La fonction rgb2hsv() permet de passer a la representation HSV (teinte,saturation, valeur) des couleurs :
chsv <- t(rgb2hsv(col2rgb(cc)))rr <- scatterplot3d(chsv, color = cc, box = FALSE, angle = 24, main = "Les couleurs pre-definies dans l'espace HSV",
xlab = "Teinte (Hue)", ylab = "Saturation", zlab = "Valeur",xlim = c(-0.1, 1.1), ylim = c(-0.1, 1.1), zlim = c(-0.1, 1.1))
cubedraw(rr, min = 0, max = 1)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 16/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
Les couleurs pre−definies dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)S
atur
atio
n
Val
eur
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●●
● ●
●
●
●●
●
●
● ●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●● ●
●● ●
● ●● ● ●
●● ● ●
●
●
●
●
●
●
●●
●●
●●
●●
●●●
●
●
●
●
●
● ●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●
● ●
●
●●
●●
●●
●●
●●
●●●
●●●
●
●
●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●● ●●
● ●●
●●
● ●●
●●
●
●
●
●
●
● ●
● ●
● ●
● ●
● ●
●
●●
●
●
● ●
●
●
●
●●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●●●
●●
●●
●
● ●
● ●
● ●
●● ●●
●●
●●●
●●●
●●
●●● ●
●
●
●●
●
●● ● ●
●●●● ●●● ●● ●
●● ● ●
●● ● ●
● ●
●
●●
●
●
●
●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●
●●
●●
●
●●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
Il existe plusieurs fonctions utilitaires permettant de choisir n couleurs dansune palette pre-definie :
demo.pal <- function(n, border = if (n < 32) "light gray" else NA,main = paste("Palettes de couleur; n=", n), ch.col = c("rainbow(n)",
"heat.colors(n)", "terrain.colors(n)", "topo.colors(n)","cm.colors(n)")) {
nt <- length(ch.col)i <- 1:nj <- n/ntd <- j/6dy <- 2 * dplot(i, i + d, type = "n", yaxt = "n", ylab = "", main = main)for (k in 1:nt) {
rect(i - 0.5, (k - 1) * j + dy, i + 0.4, k * j, col = eval(parse(text = ch.col[k])),border = eval(parse(text = ch.col[k])))
text(2 * j, k * j + dy/4, ch.col[k])}
}demo.pal(128)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 17/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
0 20 40 60 80 100 120
Palettes de couleur; n= 128
i
rainbow(n)
heat.colors(n)
terrain.colors(n)
topo.colors(n)
cm.colors(n)
Exercice : ecrire une fonction pour representer la trajectoire des palettespredefinies dans les espaces RGB et HSV.
show.palette(rainbow)
rainbow dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rouge
vert
bleu
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●●●●
●●●●●●
●●●●●●
●●●●●●
●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
rainbow dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)
Sat
urat
ion
Val
eur
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
show.palette(heat.colors)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 18/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
heat.colors dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rougeve
rt
bleu
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
heat.colors dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)
Sat
urat
ion
Val
eur
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ●
●
●●
● ●
●
●
●
●
● ●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
show.palette(terrain.colors)
terrain.colors dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rouge
vert
bleu
●●●●●●
●●
●
●●●●
●
●● ●●
●
●●●
●
●
●●●
●●●
●
●●●●
●
●●●
●
●
●●●
●
●
●●●
●
●
●●●
●
●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●●
●●
●●
●
●
●●
●●
●●
●
●●●
●●
●●
●●●
●●●
●
●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●
●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
terrain.colors dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)
Sat
urat
ion
Val
eur
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
show.palette(topo.colors)
topo.colors dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rouge
vert
bleu
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●
●
●●●●●●
●
●●
●
●●
●●
●●
●●
●●●
●●●
●●●
●●●
●
●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ●
●
●●
● ●
●
●
●
●
● ●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
topo.colors dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)
Sat
urat
ion
Val
eur
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 19/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
show.palette(cm.colors)
cm.colors dans l'espace RVB
−50 0 50 100 150 200 250 300
−50
0 5
010
015
020
025
030
0
−50 0
50100
150200
250300
rouge
vert
bleu
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
● ●
●
●●
● ●
●
●
●
●
● ●●
● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
cm.colors dans l'espace HSV
−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4−0.
2 0
.0 0
.2 0
.4 0
.6 0
.8 1
.0 1
.2 1
.4
−0.2 0.0
0.2 0.4
0.6 0.8
1.0 1.2
Teinte (Hue)
Sat
urat
ion
Val
eur
●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●●●●
● ●
●
●●
● ●
●
●
●
●
● ●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
5 Couleurs transparentes
Les couleurs transparentes ne sont pas toujours disponibles (seuls quartz()et pdf()).
pdf("figs/essai.pdf", version = "1.4")set.seed(1071966)n <- 10x <- rnorm(n = n, mean = 5)plot(x = x, y = x, main = "La variance est le carre moyen", col.main = "red",
las = 1, pch = 3, xlab = expression(x[i]), ylab = expression(y[i]))points(mean(x), mean(x), cex = 3)sapply(1:4, function(side) rug(x = x, side = side))rect(xleft = x, ybottom = x, xright = mean(x), ytop = mean(x), col = rgb(0,
0, 0, 2/n), border = rgb(0, 0, 0, 2/n))var.n <- function(x) sum((x - mean(x))^2)/length(x)offset <- diff(range(x))/50xleft <- offset + mean(x)xright <- xleft + var.n(x)ybottom <- offset + min(x)ytop <- ybottom + var.n(x)rect(xleft, ybottom, xright, ytop, lwd = 2, border = "red")text((xleft + xright)/2, (ytop + ybottom)/2, expression(frac(1,
n) * sum((x[i] - bar(x))^2)))legend(x = min(x), y = max(x), expression(bar(x) == frac(1, n) *
sum(x[i])), pt.cex = 3, pch = 1, bty = "n")dev.off()
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 20/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5
3.0
3.5
4.0
4.5
5.0
5.5
6.0
6.5
La variance est le carre moyen
xi
y i
●
1
n∑(xi − x)2
● x =1
n∑xi
Les couleurs transparentes peuvent etre interessantes pour visualiser les su-perpositions de points :
pdf("figs/ronds.pdf", version = "1.4")n <- 20plot(runif(n), runif(n), pch = 19, col = c(rgb(1, 1, 0, 0.2), rgb(0,
1, 1, 0.2), rgb(1, 0, 1, 0.2)), cex = 15)dev.off()
0.2 0.4 0.6 0.8 1.0
0.2
0.4
0.6
0.8
1.0
runif(n)
runi
f(n)
Les couleurs transparentes peuvent etre interessantes dans certains cas tresparticuliers, comme la representation de plans dans des vues en perspective :
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 21/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
−0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0
−0.
50.
00.
51.
01.
52.
0
X[,1]
X[,2
]
000
001
002
010
011
012
020
021
022
100
101
102
110
111
112
120
121
122
200
201
202
210
211
212
220
221
222
6 Couleurs definies a priori
Pour un domaine d’application bien defini, il peut exister un code des cou-leurs standard, par exemple en geologie (cf figure 3), ou pour les cartes topo-graphiques :
data(volcano)x <- 10 * (1:nrow(volcano))y <- 10 * (1:ncol(volcano))image(x, y, volcano, col = terrain.colors(100), axes = FALSE)contour(x, y, volcano, levels = seq(90, 200, by = 5), add = TRUE,
col = "peru")axis(1, at = seq(100, 800, by = 100))axis(2, at = seq(100, 600, by = 100))box()title(main = "Maunga Whau Volcano", font.main = 4)
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 22/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
−5
−4
−3
−2
−1
0
Geologic Linear Time Scale in 109 years
Age
ICS 2004 data with USGS color code
Cryogenian
TonianStenian
Ectasian
Calymmian
Statherian
Orosirian
Rhyacian
Siderian
Mesozoic
Paleozoic
Neo−proterozoic
Meso−proterozoic
Paleo−proterozoic
Neoarchean
Mesoarchean
Paleoarchean
Eoarchean
Phanerozoic
Proterozoic
Archean
Eon Era Period
O2
Present
Accretionof Earth
Macro−fossils
LastSterilizingImpact
Fig. 3 – Les couleurs des cartes geologiques sont definies dans des standardsinternationaux (il existe en fait deux standards en competition)
x
y
95
100
100
100
105
105 105
110
110
110
110
115
115 115
120 125
130
135
140 145
150
155
155
160
160
165
165
170
170
175
180
180
185
190
100 200 300 400 500 600 700 800
100
200
300
400
500
600
Maunga Whau Volcano
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 23/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf
J.R. Lobry
References
[1] J. Bertin. La graphique et le traitement graphique de l’information. Flam-marion, Paris, 1973.
[2] F. Vienot, H. Brettel, and J.D. Mollon. Digital video colourmaps for checkingthe legibility of displays by dichromats. Color Research and Application,24 :243–252, 1999.
Logiciel R version 2.10.0 (2009-10-26) – tdr18.rnw – Page 24/24 – Compile le 2010-10-24Maintenance : S. Penel, URL : http://pbil.univ-lyon1.fr/R/pdf/tdr18.pdf