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:ggplot2:grafici_a_dispersione

Grafici a dispersione (scatterplot)

Per una introduzione a questo tipo di grafico, vedi: Grafico a dispersione.

I grafici a dispersione si ottengono con geom_point, che richiede l'indicazione di due variabili in aes(x, y):

library(tidyverse)
library(carData)
cars %>% 
  ggplot(aes(x = speed, y = dist)) + 
  geom_point()                        
&nolink |

Usare diversi colori per i punti

Possiamo rappresentare una terza variabile (di raggruppamento), modificando i colori dei punti. Per ottenere un grafico come quello in Scatterplot, scriviamo:

ChickWeight %>% 
  ggplot(aes(Time, weight)) +
  geom_point(aes(color = Diet)) +
  labs(title = "Weight by Time",
       x = "Time",
       y = "Weight")        
&nolink |

Vedi anche: Titoli dei grafici (ggplot2)

Punti: forma, dimensioni, colore

Forma, dimensione e colore dei punti possono derivare dalla mappatura di una variabile, indicandoli in aes(), oppure essere indicati direttamente in `geom_point()`. Indicandoli ad esempio in aes():

cars %>% 
  ggplot(aes(speed, dist)) +
  geom_point(aes(size = dist, col = speed))   
 
# oppure
cars %>% 
  ggplot(aes(speed, dist, 
             size = dist, col = speed)) +
  geom_point()     
&nolink |

Fig. 1: Grafico a bolle

In questo modo, evidentemente, è anche possibile creare Grafici a bolle (ggplot).

Nell'esempio che segue, invece, definiamo la dimensione dei punti con una variabile, e scegliamo tipo e colore dei punti direttamente in geom_point():

mtcars %>% 
  ggplot(aes(disp, mpg)) +
  geom_point(aes(size = hp), 
             shape = 21,         # simbolo 21
             fill = "orange",    # colore di riempimento
             col = "brown") +    # colore del bordo
  labs(x = "Cilindrata",
       y = "Miglia") 
&nolink |

Fig. 2: Bordi e riempimenti dei punti

Per alcuni simboli, è possibile indicare sia il colore del riempimento che il colore del bordo (vedi: Parametri grafici: simboli)

Rinominiamo le variabili con `rename()`, e impostiamo aes() un po' diversamente:

mtcars %>% 
  rename(Cilindrata = disp, Miglia = mpg, Potenza = hp) %>% 
  ggplot(aes(x = Cilindrata, y = Miglia, size = Potenza)) +
  geom_point(shape = 21, 
             fill = "lightblue",
             col = "blue") 
&nolink |

In questo caso, non sono necessari i titoli.

Vedi:

Script di esempio

E' possibile scaricare ed eseguire lo script dell'esempio:

nome_file.R
library(tidyverse)
library(carData)
 
# scatterplot semplice
cars %>% 
  ggplot(aes(x = speed, y = dist)) + 
  geom_point()                        
 
# terza variabile con colore
ChickWeight %>% 
  ggplot(aes(Time, weight)) +
  geom_point(aes(color = Diet)) +
  labs(title = "Weight by Time",
       x = "Time",
       y = "Weight")   
 
# dimensione e colore dei punti
 
cars %>% 
  ggplot(aes(speed, dist)) +
  geom_point(aes(size = dist, col = speed))   
 
cars %>% 
  ggplot(aes(speed, dist, 
             size = dist, col = speed)) +
  geom_point()     
 
mtcars %>% 
  ggplot(aes(disp, mpg)) +
  geom_point(aes(size = hp), 
             shape = 21,         # simbolo 21
             fill = "orange",    # colore di riempimento
             col = "brown") +    # colore del bordo
  labs(x = "Cilindrata",
       y = "Miglia") 
 
mtcars %>% 
  rename(Cilindrata = disp, Miglia = mpg, Potenza = hp) %>% 
  ggplot(aes(x = Cilindrata, y = Miglia, size = Potenza)) +
  geom_point(shape = 21, 
             fill = "lightblue",
             col = "blue")
r/ggplot2/grafici_a_dispersione.txt · Ultima modifica: 25/09/2021 13:42 da admin