tdr18 ||||| (ne pas) utiliser des couleursvoici la palette des couleurs disponibles de m^eme valeur...

24
Fiche TD avec le logiciel : tdr18 ————— (Ne pas) utiliser des couleurs J.R. Lobry ————— L’utilisation de la couleur n’est pas un probl` eme simple. Ce que voient les personnes atteintes de d´ eficiences oculaires. Comment peut- on fausser un message ? Les niveaux de gris. Superpositions des cou- leurs transparentes. Table des mati` eres 1 Introduction 2 2 Dyschromatopsies 6 3 Niveaux de gris 11 4 Les couleurs 14 5 Couleurs transparentes 20 6 Couleurs d´ efinies a priori 22 ef´ erences 24 1

Upload: others

Post on 18-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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