Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:grafici:scatterplot

Scatterplot (grafico a dispersione)

Per rappresentare una o più variabili cardinali, viene comunemente utilizzato il grafico a dispersione o scatterplot (vedi anche: grafico a dispersione).

Si tratta della rappresentazione grafica di default prodotta dal comando plot per i vettori numerici.

plot(ChickWeight$weight)
Fig. 1: Scatterplot

Per convenzione, la variabile indipendente viene posta sull'asse delle ascisse e quella dipendente sull'asse delle ordinate: in plot(x,y), la prima variabile sarà quella indipendente:

plot(ChickWeight$Time,ChickWeight$weight)
Fig. 2: Scatterplot con due variabili

Usare diversi colori per i punti

Possiamo rappresentare una terza variabile (di raggruppamento), modificando i colori dei punti. In questo caso, possiamo rappresentare ChickWeight$Diet, prima scegliendo i colori (col1←c(“red”, “green”, “blue”, “yellow”)), e poi associandoli ai livelli del fattore (col1[ChickWeight$Diet]).

# definiamo un vettore di colori per i livelli di ChickWeight$Diet
col1<-c("red", "green", "blue", "yellow")
 
# grafico con titolo, etichette degli assi, e punti colorati
plot(ChickWeight$Time,ChickWeight$weight,
     main="Weight by Time", xlab="Time", ylab="Weight",
     col = col1[ChickWeight$Diet])
 
# aggiungiamo una legenda per i colori dei punti
legend("topleft", title="Diet", cex = 0.8,
       legend=levels(ChickWeight$Diet), fill = col1)

Per i parametri della legenda, cfr. Legenda (legend).

Fig. 3: Uso dei colori per rappresentare una terza variabile

Usare diversi simboli per rappresentare i punti

Per rappresentare gruppi diversi all'interno dello scatterplot, possiamo anche utilizzare simboli diversi (cfr. parametri grafici: i simboli). Il codice viene qui riportato a scopo esemplificativo, in quanto il grafico così composto non risulta gradevole e leggibile.

# scegliamo i simboli da utilizzare per i livelli di ChickWeight$Diet
punti<-c(0,1,2,6)
 
# grafico
plot(ChickWeight$Time,ChickWeight$weight,
     main="Weight by Time", xlab="Time", ylab="Weight",
     pch = punti[ChickWeight$Diet])
 
# legenda
legend("topleft", title="Diet", cex = 0.8,
       legend=levels(ChickWeight$Diet), pch=punti)

Vedi anche: Grafici a dispersione con ggplot2

Script di esempio

Es Scatterplot.R
plot(ChickWeight$weight)
plot(ChickWeight$Time,ChickWeight$weight)
 
# grafico con punti a colori
col1<-c("red", "green", "blue", "yellow")
 
plot(ChickWeight$Time,ChickWeight$weight,
     main="Weight by Time", xlab="Time", ylab="Weight",
     col = col1[ChickWeight$Diet])
 
legend("topleft", title="Diet", cex = 0.8,
       legend=levels(ChickWeight$Diet), fill = col1)
 
# grafico con diversi simboli
punti<-c(0,1,2,6)
 
plot(ChickWeight$Time,ChickWeight$weight,
     main="Weight by Time", xlab="Time", ylab="Weight",
     pch = punti[ChickWeight$Diet])
 
legend("topleft", title="Diet", cex = 0.8,
       legend=levels(ChickWeight$Diet), pch=punti)

Domande? Scrivimi

su Telegram per email
r/grafici/scatterplot.txt · Ultima modifica: 05/09/2025 16:54 da Agnese Vardanega