Ricerca…


Parametri

Parametro Dettagli
x variabile dell'asse x. Può fornire data$variablex o data[,x]
y variabile dell'asse y. Può fornire data$variabley o data[,y]
main Titolo principale della trama
sub Sottotitolo opzionale di trama
xlab Etichetta per l'asse x
ylab Etichetta per l'asse y
pch Numero intero o carattere che indica il simbolo di tracciamento
col Intero o stringa che indica il colore
type Tipo di trama "p" per i punti, "l" per le linee, "b" per entrambi, "c" per la parte delle righe sola di "b" , "o" per entrambe le "sovrapposte", "h" per "come un istogramma" ( o "alta densità") linee verticali, "s" per gradini, "S" per altri passi, "n" per non tracciare

Osservazioni

Le voci elencate nella sezione "Parametri" sono una piccola parte di parametri possibili che possono essere modificati o impostati dalla funzione par . Vedi il par per una lista più completa. Inoltre, tutti i dispositivi grafici, inclusi i dispositivi grafici interattivi specifici del sistema, avranno una serie di parametri che possono personalizzare l'output.

Trama di base

Una trama di base viene creata chiamando plot() . Qui usiamo il frame dei dati delle cars incorporato che contiene la velocità delle auto e le distanze prese per fermarsi negli anni '20. (Per saperne di più sul set di dati, utilizzare l'aiuto (auto)).

plot(x = cars$speed, y = cars$dist, pch = 1, col = 1, 
     main = "Distance vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance")

inserisci la descrizione dell'immagine qui

Possiamo usare molte altre varianti nel codice per ottenere lo stesso risultato. Possiamo anche modificare i parametri per ottenere risultati diversi.

with(cars, plot(dist~speed, pch = 2, col = 3, 
     main = "Distance to stop vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance"))

inserisci la descrizione dell'immagine qui

Ulteriori caratteristiche possono essere aggiunte a questo grafico chiamando points() , text() , mtext() , lines() , grid() , ecc.

plot(dist~speed, pch = "*", col = "magenta", data=cars,
     main = "Distance to stop vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")

inserisci la descrizione dell'immagine qui

Matplot

matplot è utile per tracciare rapidamente più serie di osservazioni dallo stesso oggetto, in particolare da una matrice, sullo stesso grafico.

Ecco un esempio di una matrice contenente quattro serie di estrazioni casuali, ciascuna con una media diversa.

xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
#          [,1]        [,2]       [,3]     [,4]
# [1,] -3.072793 -2.53111494  0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126  1.9586467 5.268474
# [4,] -3.431133 -2.02626870  1.1153643 3.170689
# [5,] -4.532925  0.02164187  0.9783948 3.162121
# [6,] -2.169391 -1.42699116  0.3214854 4.480305

Un modo per tracciare tutte queste osservazioni sullo stesso grafico consiste nel fare una chiamata di plot seguita da altre tre chiamate di points o lines .

plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')

Figura usando trama e linee

Tuttavia, questo è sia noioso, e causa problemi perché, tra le altre cose, per impostazione predefinita i limiti dell'asse sono fissati dal plot per adattarsi solo alla prima colonna.

Molto più conveniente in questa situazione è l'uso della funzione matplot , che richiede solo una chiamata e si occupa automaticamente dei limiti dell'asse e modifica l'estetica di ogni colonna per renderli distinguibili.

matplot(xmat, type = 'l')

Figura usando matplot

Si noti che, per impostazione predefinita, matplot varia sia per il colore ( col ) che per il tipo di linea ( lty ) poiché ciò aumenta il numero di combinazioni possibili prima che vengano ripetute. Tuttavia, qualsiasi (o entrambe) di queste estetiche può essere fissata a un singolo valore ...

matplot(xmat, type = 'l', col = 'black')

Figura usando matplot con tutte le linee nere

... o un vettore personalizzato (che ricicla al numero di colonne, seguendo le regole di riciclaggio del vettore R standard).

matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))

Figura usando matplot con linee colorate

I parametri grafici standard, incluso main , xlab , xmin , funzionano esattamente allo stesso modo del plot . Per di più su quelli, vedi ?par .

Come la plot , se viene dato un solo oggetto, matplot assume che sia la variabile y e usa gli indici per x . Tuttavia, x ed y può essere specificato esplicitamente.

matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')

Impostazione di un valore per l'asse x

Infatti, sia x che y possono essere matrici.

xes <- cbind(seq(0, 10, length.out = 100),
             seq(2.5, 12.5, length.out = 100),
             seq(5, 15, length.out = 100),
             seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')

Input della matrice per x e y

Gli istogrammi

Gli istogrammi consentono uno pseudo-plot della distribuzione sottostante dei dati.

hist(ldeaths)

Istogramma di ldeaths con parametri predefiniti

hist(ldeaths, breaks = 20, freq = F, col = 3)

Historgram con densità, pause diverse e barre colorate.

Combinazione di trame

È spesso utile combinare più tipi di grafico in un grafico (ad esempio un Barplot accanto a un grafico a dispersione). R semplifica questo compito con l'aiuto delle funzioni par() e layout() .

par()

par usa gli argomenti mfrow o mfcol per creare una matrice di nrows e ncols c(nrows, ncols) che servirà da griglia per i tuoi grafici. L'esempio seguente mostra come combinare quattro grafici in un grafico:

par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")

Quattro lotti combinati in un appezzamento

layout()

Il layout() è più flessibile e consente di specificare la posizione e l'estensione di ciascun grafico all'interno del grafico combinato finale. Questa funzione si aspetta un oggetto matrix come input:

layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")

Tre grafici combinati in un grafico usando layout ().

Trama di densità

Un follow up molto utile e logico per gli istogrammi sarebbe quello di tracciare la funzione di densità livellata di una variabile casuale. Una trama di base prodotta dal comando

plot(density(rnorm(100)),main="Normal density",xlab="x")

sarebbe simile

esempio di trama con densità anormale

Puoi sovrapporre un istogramma e una curva di densità con

x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")

che dà

Sovrapposizione anomala

Empirical Cumulative Distribution Function

Un follow up molto utile e logico per gli istogrammi e i grafici di densità sarebbe la funzione di distribuzione cumulativa empirica. Possiamo usare la funzione ecdf() per questo scopo. Una trama di base prodotta dal comando

plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")

sarebbe simile inserisci la descrizione dell'immagine qui

Iniziare con R_Plots

  • dispersione

Hai due vettori e vuoi disegnarli.

x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)

Se si desidera creare un y_values che abbia i y_values nell'asse verticale e i x_values nell'asse orizzontale, è possibile utilizzare i seguenti comandi:

plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot

È possibile digitare ?plot() nella console per leggere ulteriori opzioni.

  • boxplot

Hai alcune variabili e vuoi esaminare le loro distribuzioni

#boxplot is an easy way to see if we have some outliers in the data.
   
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers      
boxplot(z) # the two points are the outliers of variable z.
  • Gli istogrammi

Un modo semplice per disegnare gli istogrammi

hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
  • Grafici a torta

Se vuoi visualizzare le frequenze di una variabile, basta disegnare una torta

Per prima cosa dobbiamo generare dati con frequenze, ad esempio:

P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow