Nothing
# Ricerca Sociale con R
# Agnese Vardanega - avardanega@unite.it
# CAPITOLO 5
# le righe precedute dal commento "RCMDR: ..." sono prodotte da menu di Rcmdr
# e non sono eseguibili se non e' caricato Rcmdr
# INIZIO SESSIONE ---------------------------------------------------------
# Da Menu di RCommander o da R: Impostare la directory di lavoro
# setwd("C:/.../Laboratorio R")
# libreria del laboratorio
library(LabRS)
# Dati
data("MYSLID")
# ASSI --------------------------------------------------------------------
# proporzioni
# variabile categoriale
barplot(tab1)
barplot(tab1,
ylim = c(0, max(tab1)+1000)) # limiti asse y
barplot(tab1,
ylim = c(0, max(tab1)+1000),
xlim = c(0,6)) # limiti asse x
# variabile numerica
plot(cars$speed, cars$dist) # default
abline(lm(data = cars, dist ~ speed))
plot(cars$speed, cars$dist,
asp = 1) # 1:1
abline(lm(data = cars, dist ~ speed))
# limiti e bordo
plot(cars,
xlim = c(0, max(cars$speed) / 100 * 110),
ylim = c(0, max(cars$dist) / 100 * 110),
bty = "l") # bordo a L
# LAYERS O LIVELLI --------------------------------------------------------
# primo livello
plot(cars)
# griglia
grid()
# oppure
plot(cars,
panel.first = grid()) # disegnata sotto
# terzo livello
abline(lm(data = cars, dist ~ speed))
# quarto livello
title(main = "Retta dei minimi quadrati") # aggiunge il titolo
# oppure
plot(cars,
main = "Retta dei minimi quadrati") # titolo nel testo
grid()
abline(lm(data = cars, dist ~ speed))
title(xlab = "Velocita",
ylab = "Spazio di frenata")
plot(data = cars, dist ~ speed,
xlab = "Velocita",
ylab = "Spazio di frenata")
# GRAFICI ESPLORATIVI -----------------------------------------------------
# variabili categoriali: Figura 1
plot(MYSLID$Eta.classi)
coordx <- plot(MYSLID$Eta.classi)
coordx
# due variabili categoriali (mosaico)
plot(MYSLID$Lingua, MYSLID$Genere)
plot(MYSLID$Genere, MYSLID$Lingua)
# GRAFICI A BARRE ---------------------------------------------------------
barplot(table(MYSLID$Eta.classi), # Fig. 1
main = "Classi di eta") # titolo
attributes(table(MYSLID$Eta.classi))
barplot(tab3, # Fig. 3
xlab = "Lingua", # titolo asse x
ylab = "Frequency") # titolo asse y
barplot(tab3, # Fig. 14
beside = TRUE, # barre affiancate
main = "Lingue parlate e genere",
xlab = "Genere",
ylab = "Frequency",
legend = levels(MYSLID$Lingua)) # legenda
barplot(tabM, # Fig. 15
main = "Identificazione di partito e genere",
beside = TRUE,
xlab = "Genere",
ylab = "Frequency",
legend = row.names(tabM)) # legenda
barplot(tab2,
horiz = T, # orizzontali
las = 1) # etichette orizzontali
# etichette
barplot(tab1,
names.arg = c("Anglofoni", "Francofoni", "Altro"),
xlab = "Gruppo linguistico")
# GRAFICI A TORTA ---------------------------------------------------------
pie(table(MYSLID$Lingua), # Fig. 2
main = "Lingua parlata")
pie(tab1,
main = "Lingua parlata")
# etichette
names(tab1)
pie(tab1,
labels = c("Anglofoni", "Francofoni", "Altro"))
pie(tab1,
labels = percent(tab1, 1)) # etichette percentuali
pie(tab1,
clockwise = TRUE,
labels = paste(names(tab1), percent(tab1, 1), "%"))
# ISTOGRAMMI --------------------------------------------------------------
hist(MYSLID$Retribuzione, # Fig. 3
col = "darkgray", # colore
main = "Retribuzione",
xlab = NULL, # senza titolo x
ylab = NULL) # senza titolo y
hist(MYSLID$Eta, # Fig. 6
freq = FALSE,
main = "Eta",
xlab = NULL,
ylab = "Densita")
hist(MYSLID$Retribuzione, # Fig. 7
prob = TRUE,
main = "Retribuzione",
xlab = NULL,
ylab = "Densita")
# etichette
hist(MYSLID$Eta,
ylim = c(0, 900), # limiti dell'asse y
labels = TRUE)
# BOXPLOT -----------------------------------------------------------------
boxplot(MYSLID$Retribuzione) # Fig. 9
# confronto distribuzioni
boxplot(scale(MYSLID[2:4])) # Fig. 10
# retta della media
abline(h = 0, # media = 0
lty = 2) # linea tratteggiata
# due variabili
boxplot(MYSLID$Retribuzione ~ MYSLID$Genere) # Fig. 17
boxplot(data = MYSLID, Retribuzione ~ Genere)
# etichette
boxplot(data = MYSLID, Retribuzione ~ Genere,
names = c("Donne", "Uomini"))
# GRAFICI A DISPERSIONE ---------------------------------------------------
# grafici a dispersione: simboli
plot(cars,
pch = "*")
plot(cars,
pch = 19,
col = "blue")
plot(cars,
pch = 22,
col = "blue", # bordo
bg = "pink") # riempimento
# usare i valori di una variabile
plot(data = MYSLID, Retribuzione ~ Istruzione,
pch = as.numeric(MYSLID$Genere))
# LINEE -------------------------------------------------------------------
# abline
plot(data = cars, dist ~ speed) # Fig. 20
abline(lm(data = cars, dist ~ speed)) # retta
# retta orizzontale (media)
boxplot(scale(MYSLID[2:4])) # Fig. 10
abline(h = 0, # media = 0
lty = 2) # linea tratteggiata
# retta verticale (mediana)
hist(MYSLID$Eta, prob = TRUE) # Fig. 6
abline(v = median(MYSLID$Eta), # mediana
lty = 2) # linea
# segments
hist(MYSLID$Eta)
segments(median(MYSLID$Eta), -30, # punto di inizio (x, y)
median(MYSLID$Eta), 850, # punto di fine (x, y)
lwd = 2) # spessore della linea
# etichetta
text(x = median(MYSLID$Eta) + 8,
y = 850,
"mediana")
# CURVA NORMALE -----------------------------------------------------------
# distribuzione normale # Fig. 4
curve(dnorm(x,
mean = 0, # media
sd = 1), # sd
-3, 3 # limiti
)
grid(ny = 0) # griglia verticale
# curva normale aggiunta
hist(MYSLID$Eta, # Fig. 6
prob = TRUE
)
curve(dnorm(x,
mean = mean(MYSLID$Eta),
sd = sd(MYSLID$Eta)),
add = TRUE)
# curva normale aggiunta a variabile standardizzata
hist(scale(MYSLID$Eta), # Fig. 6
prob = TRUE
)
curve(dnorm(x),
add = TRUE,
lty = 3, # linea a punti
lwd = 2) # linea piu' spessa
# ALTRI GRAFICI -----------------------------------------------------------
# grafico di densita'
plot(density(MYSLID$Eta)) # Fig. 8
# grafici quantili-quantili
qqnorm(MYSLID$Retribuzione) # Fig. 11
qqnorm(MYSLID$Eta) # Fig. 11
qqline(MYSLID$Eta) # linea norm.
# grafici del pacchetto RcmdrMisc
RcmdrMisc::Barplot(MYSLID$Eta.classi) # Fig. 1
RcmdrMisc::Hist(MYSLID$Retribuzione) # Fig. 3
# grafici del pacchetto car
car::densityPlot(MYSLID$Eta) # Fig. 8
car::Boxplot(MYSLID$Retribuzione) # Fig. 9
car::qqPlot(MYSLID$Retribuzione) # Fig. 11
car::scatterplot(data = cars, dist ~ speed) # Fig. 18
# COLORI E RIEMPIMENTI ----------------------------------------------------
# palette
palette()
palette(rainbow(10))
palette()
palette(c("red", "green", "green4", "blue", "cyan"))
palette("default")
# vedere i colori di una paletta
n = 8
barplot(rep(1, n), col = rainbow(n))
palette("default")
# indicare i colori
barplot(tab1,
col = "pink",
border = "blue")
# RAPPRESENTARE I DATI
# mosaico
data(faccende)
mosaicplot(
faccende[,c(1,2,4,3)],
type = "pearson",
las = 2, # orientamento testo assi
col = c("magenta", "gray86", "#E6E6E6", "blue"),
main = "Faccende" # titolo
)
# grafico a dispersione
library(colorspace)
palette(rev(sequential_hcl(5)))
plot(cars,
pch = 21,
col = 3,
bg = cars$speed/max(cars$speed)*5) # variabile trasformata
palette("default") # paletta di default
# terza variabile
palette(cm.colors(6))
plot(data = MYSLID, Retribuzione ~ Istruzione,
pch = 19,
col = MYSLID$Eta.classi)
palette("default")
# RIEMPIMENTI
pie(tab1,
clockwise = TRUE,
density = c(0, 5, 10),
angle = c(0, 180, 45))
# ETICHETTE DEI DATI ------------------------------------------------------
# scatterplot
plot(cars)
text(x = cars$speed, y = cars$dist, # coordinate
labels = row.names(cars), # etichette
cex = 0.6, # dimensioni del testo
pos = 2) # posizione
# oppure con punti piccoli
plot(cars,
pch = ".")
text(x = cars$speed, y = cars$dist,
labels = row.names(cars),
cex = 0.6
)
# grafico CA
coord <- rbind(
CA.res$row$coord,
CA.res$col$coord)
plot(coord[,1:2],
ylim = c(-1.5, 1),
asp = 1)
abline(v = 0,
lty = 2) # linea tratteggiata
abline(h = 0,
lty = 2)
text(coord[1:13,1:2],
labels = row.names(coord)[1:13],
cex = 0.7, # dimensione carattere
col = "blue",
pos = 3) # posizione etichetta
text(coord[14:17,1:2],
labels = row.names(coord)[14:17],
cex = 0.7,
col = "red",
pos = 3)
rm(coord)
# grafico a barre
coordx <- barplot(tab3,
beside = TRUE,
ylim = c(0, 3200), # limiti dell'asse Y
main = "Genere e gruppo linguistico")
labs <- percent(tab3, 1, 2) # percentuali
text(x = coordx,
y = tab3,
labels = paste(labs, "%", sep = ""), # aggiunge %
pos = 3, # sopra
cex = 0.8,
font = 2) # grassetto
text(x = coordx,
y = tab3,
labels = tab3, # valore assoluto
pos = 3,
cex = 0.8,
font = 2
)
rm(coordx, labs)
# istogramma
coordx <- hist(MYSLID$Eta,
ylim = c(0, 900),
main = NULL) # senza titolo
str(coordx)
text(x = coordx$mids, # midpoints
y = coordx$counts - 20, # frequenze, etichette all'interno
labels = coordx$counts,
cex = 0.8)
rm(coordx)
# LEGENDA -----------------------------------------------------------------
# Figura 15
data("tabM")
barplot(tabM,
main = "Identificazione di partito e genere",
beside = TRUE,
legend = rownames(tabM)) # argomento della funzione
# Figura 16
# linee
curve(dchisq(x, df = 3),
0, 20)
grid(ny = 0)
curve(dchisq(x, df = 9),
0, 20,
add = T,
lwd = 2,
lty = 2)
curve(dchisq(x, df = 15),
0, 20,
add = T,
lwd = 2,
lty = 3)
legend("topright",
title = "Gradi di liberta",
legend = c("3","9","15"), # testo
lty = c(1, 2, 3), # linee
lwd = 2, # spessore linee
cex = 0.9, # dimensione testo
bty = "n" # senza box
)
# Figura 13 e Figura 14
# colori
par(xpd = NA) # usare i margini
barplot(tab3,
xlab = "Genere",
ylab = "Frequenze"
)
legend(0, 4500, # coordinate
legend = rownames(tab3), # testo
fill = gray.colors(3), # colori
horiz = TRUE, # orizzontale
title = "Lingua" # titolo
)
par(xpd = FALSE)
# legenda per grafico con punti
par(xpd = NA)
palette(cm.colors(6))
plot(MYSLID$Istruzione, MYSLID$Retribuzione,
xlab = "Istruzione",
ylab = "Retribuzione",
pch = 19,
col = MYSLID$Eta.classi)
legend(-1, 62,
legend = levels(MYSLID$Eta.classi), # testo della legenda
fill = cm.colors(6), # bordo dei punti
horiz = TRUE,
cex = 0.8, # dimensione carattere
bty = "n", # senza box
title = "Classi di eta")
par(xpd = FALSE)
# PARAMETRI GRAFICI -------------------------------------------------------
par(mar = c(1, 0, 1, 0)) # margini del grafico in linee
par(bty = "l") # bordo del grafico a L
# dimensioni del carattere ridotte, bordo a L
par(list(cex = 0.8, bty = "l"))
# inserire elementi nei margini
par(xpd = NA)
par()
# salvare una copia dei default
def.par <- par()
# ripristinare il default
par(def.par)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.