R Language
Trazado de base
Buscar..
Parámetros
Parámetro | Detalles |
---|---|
x | Variable del eje x. Puede suministrar data$variablex o data[,x] |
y | Variable del eje y. Puede suministrar data$variabley o data[,y] |
main | Título principal de la trama. |
sub | Subtítulo opcional de la trama. |
xlab | Etiqueta para el eje x |
ylab | Etiqueta para el eje y |
pch | Entero o carácter que indica el símbolo de trazado |
col | Entero o cadena que indica color |
type | Tipo de parcela. "p" para los puntos, "l" para las líneas, "b" para ambos, "c" para las líneas, solo parte de "b" , "o" para ambos 'sobrepuntaados', "h" para 'histogram'-like ( o 'líneas verticales de' alta densidad ', "s" para escalones, "S" para otros pasos, "n" para no trazar |
Observaciones
Los elementos enumerados en la sección "Parámetros" son una pequeña fracción de los posibles parámetros que pueden ser modificados o configurados por la función par
. Ver par
para una lista más completa. Además, todos los dispositivos gráficos, incluidos los dispositivos gráficos interactivos específicos del sistema, tendrán un conjunto de parámetros que pueden personalizar la salida.
Trama basica
Una trama básica se crea llamando a plot()
. Aquí utilizamos el marco de datos de cars
incorporado que contiene la velocidad de los autos y las distancias tomadas para detenerse en la década de 1920. (Para obtener más información sobre el conjunto de datos, use la ayuda (autos)).
plot(x = cars$speed, y = cars$dist, pch = 1, col = 1,
main = "Distance vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
Podemos usar muchas otras variaciones en el código para obtener el mismo resultado. También podemos cambiar los parámetros para obtener diferentes resultados.
with(cars, plot(dist~speed, pch = 2, col = 3,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance"))
Se pueden agregar características adicionales a este gráfico llamando los points()
, text()
, mtext()
, lines()
, grid()
, etc.
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")
Matplot
matplot
es útil para trazar rápidamente múltiples conjuntos de observaciones desde el mismo objeto, particularmente desde una matriz, en el mismo gráfico.
Aquí hay un ejemplo de una matriz que contiene cuatro conjuntos de dibujos aleatorios, cada uno con una media diferente.
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
Una forma de trazar todas estas observaciones en el mismo gráfico es hacer una llamada a la plot
seguida de tres points
o lines
.
plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')
Sin embargo, esto es tedioso y causa problemas porque, entre otras cosas, de forma predeterminada, los límites de los ejes se fijan por plot
para que se ajusten solo a la primera columna.
Mucho más conveniente en esta situación es usar la función matplot
, que solo requiere una llamada y se ocupa automáticamente de los límites de los ejes y cambia la estética de cada columna para que se puedan distinguir.
matplot(xmat, type = 'l')
Tenga en cuenta que, de forma predeterminada, matplot
varía el color ( col
) y el tipo de línea ( lty
) porque esto aumenta el número de combinaciones posibles antes de que se repitan. Sin embargo, cualquiera (o ambas) de estas estéticas se pueden fijar a un solo valor ...
matplot(xmat, type = 'l', col = 'black')
... o un vector personalizado (que se reciclará al número de columnas, siguiendo las reglas estándar de reciclaje de vectores R).
matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))
Los parámetros gráficos estándar, incluidos main
, xlab
, xmin
, funcionan exactamente de la misma forma que para plot
. Para más sobre esos, vea ?par
.
Como plot
, si se les da sólo un objeto, matplot
asume que es el y
variable y utiliza los índices de x
. Sin embargo, x
y y
se puede especificar de forma explícita.
matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')
De hecho, tanto x
como y
pueden ser matrices.
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')
Histogramas
Los histogramas permiten una pseudo-gráfica de la distribución subyacente de los datos.
hist(ldeaths)
hist(ldeaths, breaks = 20, freq = F, col = 3)
Parcelas Combinadas
A menudo es útil combinar varios tipos de gráficos en un gráfico (por ejemplo, un gráfico de barras junto a un gráfico de dispersión). R facilita esta tarea con la ayuda de las funciones par()
y layout()
.
par()
par
utiliza los argumentos mfrow
o mfcol
para crear una matriz de nrows y ncols c(nrows, ncols)
que servirá como una cuadrícula para sus parcelas. El siguiente ejemplo muestra cómo combinar cuatro parcelas en una gráfica:
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")
layout()
El layout()
es más flexible y le permite especificar la ubicación y la extensión de cada gráfico dentro del gráfico final combinado. Esta función espera un objeto de matriz como entrada:
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")
Parcela de densidad
Un seguimiento muy útil y lógico de los histogramas sería trazar la función de densidad suavizada de una variable aleatoria. Una trama básica producida por el comando.
plot(density(rnorm(100)),main="Normal density",xlab="x")
se vería como
Puede superponer un histograma y una curva de densidad con
x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")
lo que da
Función de distribución acumulativa empírica
Un seguimiento muy útil y lógico de los histogramas y gráficos de densidad sería la función de distribución acumulativa empírica. Podemos usar la función ecdf()
para este propósito. Una trama básica producida por el comando.
plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")
Primeros pasos con R_Plots
- Gráfico de dispersión
Tienes dos vectores y quieres trazarlos.
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)
Si desea hacer un gráfico que tenga los y_values
en el eje vertical y los x_values
de x_values
en el eje horizontal, puede usar los siguientes comandos:
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
Puede escribir ?plot()
en la consola para leer acerca de más opciones.
- Diagrama de caja
Tienes algunas variables y quieres examinar sus Distribuciones.
#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.
- Histogramas
Manera fácil de dibujar histogramas.
hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
- Gráficos circulares
Si desea visualizar las frecuencias de una variable, simplemente dibuje un pastel.
Primero tenemos que generar datos con frecuencias, por ejemplo:
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