Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:grafici:gestione_colori

Gestione dei colori

Nei grafici di R, è possibile utilizzare singoli colori o vettori di colori indicati con varie notazioni (nomi, RGB, sistema esadecimale), come anche palette (combinazioni standard) di colori.

Nei grafici, il colore è indicato con il parametro col=.

I colori

Una lista dei colori è disponibile in italiano e in inglese su Wikipedia. R utilizza i nomi in inglese, scritti senza spazi. Un elenco dei colori disponibili in R è disponibile in formato PDF.

È possibile indicare, come valore dell'argomento col, o laddove sia richiesto un colore:

  • un solo colore:
    col = "Aquamarine"
     
    col = "#7FFFD4"
  • un vettore di colori:
    col = c("lightblue", "mistyrose", "lightcyan")
     
    col = c("#ADD8E6", "#FFE4E1", "#E0FFFF")

Esempi

require(car)                                 #dati
data(SLID)
 
barplot(table(SLID$sex),
        horiz = F,
        names.arg = c("Donne", "Uomini"),
        col = "grey")
 
pie(
  table(SLID$language),
  main = "Lingue parlate",
  labels = c("Inglese", "Francese", "Altro"),
  col = c("lightblue", "orange", "darkgreen")
)

Le palette

Per scegliere o definire i colori in uso è possibile anche utilizzare le palette, set di colori indicizzati (vettore di colori).

Come usare la palette per indicare i colori

Per conoscere la palette in uso, e dunque i colori corrispondenti ai numeri, si usa il comando palette()

palette()
[1] "black"   "#DF536B" "#61D04F" "#2297E6" "#28E2E5" "#CD0BBC" "#F5C710" "gray62"

Conoscendo la palette e i colori in uso, è possibile indicare i colori con l'indice del colore nella palette in uso.

Esempio

barplot(
  table(SLID$language),
  horiz = T,
  main = "Lingue",
  names.arg = c("Inglese", "Francese", "Altro"),
  col = c(3:5)
)

In questo caso col = c(3:5) indica i colori dal terzo al quinto della paletta in uso.

Naturalmente, è sempre possibile indicare un solo colore (col = 4), o una serie di colori non contigui (col = c(3, 7, 2, 5)).

n = 4
barplot(rep(1, n), col = c(3, 7, 2, 5))
 |barplot(rep(1, n), col = c(3, 7, 2, 5))

Selezionare una paletta di colori

Le palette di colori (in questo caso, diremmo forse meglio “gamme” di colori) disponibili nella distribuzione standard di R1)) sono:

  • rainbow (default)
  • heat.colors
  • terrain.colors
  • topo.colors
  • cm.colors

A cui possiamo aggiungere anche

  • gray.colors (gradazioni di grigio, da nero a grigio chiaro)

Per costruire una palette di colori a partire da una dalle palette standard, si usa la funzione palette(), indicando il nome della gamma, e il numero di colori che si vogliono utilizzare:

palette(rainbow(20))

A questo punto i colori della paletta saranno:

palette()
 [1] "red"     "#FF4C00" "#FF9900" "#FFE500" "#CCFF00" "#80FF00" "#33FF00"
 [8] "#00FF19" "#00FF66" "#00FFB2" "cyan"    "#00B3FF" "#0066FF" "#0019FF"
[15] "#3300FF" "#8000FF" "#CC00FF" "#FF00E6" "#FF0099" "#FF004D"

L’intera gamma di colori sarà suddivisa nel numero di colori indicato, andando a comporre la palette che entrerà poi in uso.

Per tornare alla paletta di default:

palette("default")

Per visualizzare velocemente i colori di queste palette, possiamo costruire dei grafici a barre ad hoc con 10 colori delle stesse:

n = 10
barplot(rep(1, n), col = rainbow(10))
barplot(rep(1, n), col = heat.colors(10))
barplot(rep(1, n), col = terrain.colors(10))
barplot(rep(1, n), col = topo.colors(10))
barplot(rep(1, n), col = cm.colors(10))

Possiamo notare qui un ulteriore possibile modo di inserire il valore dell’argomento col: in questo caso, si tratta della paletta heat divisa in 10 colori. Se indicassimo, ad esempio, heat.colors(6), i primi quattro colori verrebbero ripetuti

Definire una paletta di colori personalizzata

È anche possibile definire una paletta di colori personalizzata, semplice-mente indicando i nomi dei colori che si vogliono utilizzare, nell’ordine preferito:

palette(c("red","green","green4","blue","cyan"))

Una volta dato il comando, la paletta di colori sarà attiva, e potrà essere utilizzata come le altre:

palette()
[1] "red"    "green"  "green4" "blue"   "cyan" 

Altre risorse online

Script di esempio (download)

Gest colori.R
# file di dati
require(car)
data(SLID)
 
# indicare i colori con il nome
barplot(table(SLID$sex),
        horiz = F,
        names.arg = c("Donne", "Uomini"),
        col = "grey")
 
pie(
  table(SLID$language),
  main = "Lingue parlate",
  labels = c("Inglese", "Francese", "Altro"),
  col = c("lightblue", "orange", "darkgreen")
)
 
# indicare i colori con l'indice della palette
barplot(
  table(SLID$language),
  horiz = T,
  main = "Lingue",
  names.arg = c("Inglese", "Francese", "Altro"),
  col = c(3:5)
)
 
n = 4
barplot(rep(1, n), col = c(3, 7, 2, 5))
 
# impostare la palette
palette()
palette(rainbow(20))
palette()
palette("default")
 
n = 10
barplot(rep(1, n), col = rainbow(10))
barplot(rep(1, n), col = heat.colors(10))
barplot(rep(1, n), col = terrain.colors(10))
barplot(rep(1, n), col = topo.colors(10))
barplot(rep(1, n), col = cm.colors(10))

1) Altre palette sono incluse nel pacchetto colorspace (con diversa sintassi d'uso: vedi la guida di colorspace
r/grafici/gestione_colori.txt · Ultima modifica: 26/09/2021 07:44 da admin