plot(y ~ x) - WordPress.com

Download Report

Transcript plot(y ~ x) - WordPress.com

Introducción al lenguaje R
Sesión 4 / Gráficos en R
Profesor:
Noé Becerra Rodríguez
25 de junio 2014
Contenido
• plot ( )
• barplot ( )
• hist ( )
• boxplot ( )
• pie ( )
• accesorios para gráficos
2
Gráficas en R - plot( )
 Pueden ser usadas para diagramas de dispersión de dos
dimensiones (X, Y)
 Toma dos vectores como datos de entrada
x = c(2,4,6,8,10)
y = c(1.5,3,7,8,15)
plot(y ~ x)
plot(y, x) # es equivalente al anterior
3
Argumentos básicos - plot( )
col = “ ”: color del gráfico
pch: tipo de punto (círculo, cuadrado, círculo relleno, etc.)
cex: tamaño de la figura (pch) usada en el gráfico
type = “ ”: tipo de gráfico (puntos, líneas, etc.)
main = “ ”: título del gráfico
sub = “ ”: subtítulo del gráfico
xlab, ylab = “ ”: etiquetas de los ejes X / Y
xlim, ylim = c( mínimo, máximo): rango de los ejes X / Y
col.axis, col.lab, col.main, col.sub: colores para los elementos individuales
del gráfico
4
Opciones para pch
5
Algunos colores disponibles en R
colors( ) # muestra todos los colores disponibles en R
# Colores básicos en R
6
Base “datos” para las gráficas
ingreso = c(1,4,2,3,2,3,4,3,2,2,3,1,2,2,2)
fingreso = factor (ingreso, levels=1:4, labels= c ("bajo", "medio",
"alto", "muy-alto"))
género = c(2,1,1,2,2,2,1,2,1,1,2,2,1,1,2)
fgénero = factor(género, levels=1:2, labels = c("mujer", "hombre"))
peso = c(60, 72, 57, 90, 95, 72, 65, 76, 61, 92, 98, 77, 66, 75, 59)
altura = c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91, 1.77, 1.83, 1.69, 1.95, 1.78,
1.88,1.73, 1.79, 1.61)
datos = data.frame (peso, altura, fgénero, fingreso)
datos
7
Ejemplo de gráficos - plot( )
names(datos)
head(datos)
ls.str(datos)
plot(peso, altura)
plot(datos$peso, datos$altura)
plot(datos$peso, datos$altura, col="blue", pch=19)
plot(datos$peso, datos$altura, col="blue", pch=19,
type="p", main="Diagrama de dispersión peso vs altura")
8
Ejemplos - plot( )
plot(datos$peso, datos$altura, col=“blue”, pch=19,
type="p", main="Diagrama de dispersión peso vs altura",
sub = "muestra número 1", xlab="peso", ylab="altura")
plot(datos$peso, datos$altura, col=“blue”, pch=19,
type="p", main="Diagrama de dispersión peso vs altura",
sub = "muestra número 1", xlab="peso", ylab="altura", xlim =
c(55,100), ylim = c(1.55,2))
9
¿preguntas?
10
Gráficos en R - barplot( )
Genera una gráfica de barras para datos tipo factor
Las opciones más comunes que se manejan son:
names.arg: etiquetas de las barras, por defecto los toma de la base
horiz: hacer la barras horizontales (TRUE/FALSE)
main, xlim, xlab ... Argumentos similares al plot ( )
11
Ejemplos - barplot( ) 1variable
?
conteo=table(datos$fingreso)
barplot(conteo)
barplot(conteo, main="Gráfica de barras del ingreso")
barplot (conteo, main="Gráfica de barras del ingreso", xlab =
"categoría de ingreso", ylab = "cant. individuos")
barplot(conteo, main="Gráfica de barras del ingreso",
xlab="categoría de ingreso", ylab="cant. de individuos",
col="green")
barplot(conteo, main="Gráfica de barras del ingreso",
xlab="cant. de individuos", ylab="categoría de ingreso",
col="green", horiz=T)
Dar zoom a las últimas gráficas
12
Ejemplos - barplot( ) 2 variables
contador = table(datos$fingreso, datos$fgénero)
barplot(contador)
barplot(contador, main="Gráfico de barras ingreso y género")
barplot(contador, main="Gráfico de barras ingreso y género",
xlab="género", ylab=“cant. de individuos", col=c("red", "blue",
"green", "gray"))
13
Ejemplos - barplot( ) 2 variables
barplot(contador, main="Gráfico de barras ingreso y género",
xlab="género", ylab=“cant. de individuos", border="white", col=c("red",
"blue", "green", "gray"), legend=rownames(contador))
barplot(contador, main="Gráfico de barras ingreso y género",
xlab=“cantidad de individuos", ylab="género", horiz=T, col=c("red",
"blue", "green", "gray"), legend=rownames(contador))
14
¿preguntas?
15
Gráficas en R - hist( )
La función hist () genera histogramas, la variable debe
ser númerica
Los argumentos más comunes son:
breaks: especifica el número de intervalos
main, xlim, xlab etc. funcionan como en la gráfica plot( )
16
Gráficas en R - hist( )
data(airquality); head(airquality)
hist(airquality$Ozone, breaks="Sturges")
hist(airquality$Ozone, breaks="Sturges", col="limegreen",
main="Histograma sobre Ozono")
hist(airquality$Ozone, breaks="Sturges", col="limegreen",
main="Histograma sobre Ozono", border="gray40",
xlab="cantidad de Ozono", ylab="frecuencia")
hist(airquality$Ozone, breaks="Sturges", col="limegreen",
col.sub="gray60", main="Histograma sobre Ozono",
border="gray40", sub="Datos: airquality", xlab="cantidad de
Ozono", ylab="frecuencia")
17
Gráficas en R - hist( )
hist(airquality$Ozone, breaks="Sturges", col="limegreen",
col.sub="gray60", main="Histograma sobre Ozono",
border="gray60", sub="Datos: airquality", xlab="cantidad de
Ozono", ylab="frecuencia")
18
¿preguntas?
19
Gráficas en R – boxplot( )
Las gráficas de boxplot ( ) pueden ser creadas para variables
individuales o para un grupo de variables.
Los argumentos principales son:
X~Y : fórmula que indica las variables a graficar
data =: indica el dataframe de donde tomar los datos
varwidth = TRUE: gráfica proporcionalmente las cajas
horiz = TRUE: para invertir la orientación de los ejes
outline = TRUE: muestra los ouliers
main, xlabel, etc. Funcional igual que la función plot( )
20
Gráficas en R - boxplot( ) 1 variable
# Boxplot para una sola variable
data(cars)
names(mtcars)
boxplot(mtcars$mpg, col="gray", main="Diagrama de caja, millas
por galón", col.sub="gray40", sub="Datos de 1984")
21
Gráficas en R - boxplot( ) 2 variables
boxplot(mtcars$mpg ~ mtcars$cyl)
boxplot(mtcars$mpg ~ mtcars$cyl, col="green", main="Gráficos de
cajas mpg / cilindros")
boxplot(mtcars$mpg ~ mtcars$cyl, col="green", main="Gráficos de
cajas mpg / cilindros", xlab="número de cilindros", ylab="millas por
galón")
boxplot(mtcars$mpg ~ mtcars$cyl, col=rainbow(3), main="Gráficos de
cajas mpg / cilindros", xlab="número de cilindros", ylab="millas por
galón", col.sub="gray40", sub="Datos 1974 Motor Trend US")
22
Gráficas en R - boxplot( ) 2 variables
boxplot(mtcars$mpg ~ mtcars$cyl, col=2:4, main="Gráficos de cajas mpg /
cilindros", xlab="número de cilindros", ylab="millas por galón",
col.sub="gray40", sub="Datos 1974 Motor Trend US", varwidth=T)
boxplot(mtcars$mpg ~ mtcars$cyl, col=c("green", "gray", "blue"),
main="Gráficos de cajas mpg / cilindros", xlab="millas por galón",
ylab="número de cilindros", col.sub="gray40", sub="Datos 1974 Motor
Trend US", varwidth=T, horizontal=T)
23
¿preguntas?
24
Gráficas en R - Pie
Las gráficas de pastel no son muy recomendables ya que es
más fácil percibir la longitud que el volumen
Las opciones de pie( ) incluyen
x: vector indicando el área de cada sección
labels: vector de cadena para los nombres de las secciones
radius: determina el radio del círculo (0.1 a 1)
main, col, etc. se apican igual que en la función plot( )
25
Ejemplos en R - pie( )
Gráficos de Pastel simple
datos=c(10,12,4,16,8)
etiquetas=c("Italia", "Inglaterra", "Australia", "Alemania", "Francia")
pie(datos, etiquetas, main="Gráfico de pastel, PIB Países varios")
pie(datos, etiquetas, main="Gráfico de pastel, PIB Países varios",
col=rainbow(5), radius=1)
26
Ejemplos en R - pie( )
Gráfica de pastel con porcentajes
datos = c(10, 12, 4, 16, 8)
etiqueta = c("EU", "GB", "Australia", "Alemania", "Francia")
pc = round(datos/sum(datos)*100)
etiqueta = paste(etiqueta, pc)
etiqueta = paste(etiqueta,"%",sep=" ")
pie(datos,labels = etiqueta, col=rainbow(5), main="Gráfica de pastel, PIB
varios países", radius=1)
27
¿preguntas?
28
Accesorios para gráficas – par( )
par(mfrow=c(x,y) modifica el área de gráficos para incluir varios elementos en
una pantalla, x indica número de renglones mientras que y son las columnas
par(mfrow=c(1,2))
boxplot(airquality$Ozone~airquality$Month, col=2:6, main="boxplot
ozono por mes")
plot(airquality$Ozone, airquality$Wind, col="blue", pch=19, cex=0.75,
main="Gráfico ozono vs viento")
par(mfrow=c(1,1)
29
Accesorios para gráficas – abline( )
abline(x) dibuja una línea horizontal (h) o vertical (v) sobre el gráfico. Acepta
otros argumentos que impliquen una línea recta.
par(mfrow=c(1,2))
plot(airquality$Ozone, airquality$Wind, col="blue", pch=19, main="ozono
vs viento", xlab="", ylab="", cex=0.75)
abline(h=10, col="red", lwd=2.5)
plot(airquality$Ozone, airquality$Temp, col="red", pch=19, main="zono
vs temperatura", xlab="", ylab="", cex=0.75)
abline(v=55, col="blue", lwd=2.5)
30
Accesorios para gráficas – text( )
text (x,y, “texto de gráfica”) permite incluir texto en las gráficas. X e Y son
las coordenadas para ubicar la leyenda
par(mfrow=c(1,1,))
plot(cars$speed, cars$dist, col="blue", pch=17,
xlab="velocidad", ylab="distancia", main="distancia de frenado")
text(8,80, "datos de 1920")
31
Accesorios para gráficas – lines( )
El commando lines( ) permite dibujar líneas en el gráfico que no son
necesariamente rectas y permite otros argumentos de objetos generados en R
cien=rnorm(1000)
hist(cien, col=3, freq=F, main=“histograma cien aleatorios”)
lines(density(cien), col=2, lwd=2)
32
Accesorios para gráficas – legend( )
La función legend ( ) permite incorporar textos en los gráficos de manera más flexible
que el comando text ()
set.seed(123)
edad = (rnorm (100, 26, 2.5)) ; exam = floor ( rnorm (100, 7, 1.25))
gen = c(rep (1, 55), rep ( 2, 45)); fgen = factor(gen, levels=1:2, labels=c("mujer",
"varón"))
data = data.frame(edad, exam, fgen)
plot (data$edad, data$exam, col=data$fgen, pch=19, cex=0.5)
legend(20,10, legend=c("mujer", "varón"), col=c("black", "red"), pch=c(19),
cex=c(0.75))
33
¿preguntas?
34
Tarea
Con la información de la base “babies” que se encuentra en el paquete
“UsingR”, generar dos gráficos de cada tipo que se revisaron en la
sesión
Es necesario bajar el paquete “UsingR” y cargarlo en memoria antes de
poder acceder a la base “babies”
Las variables a usar son:
sex – sexo del infante
wt – peso al nacer
race – raza del madre
age – edad de la madre
ed – nivel educativo de la madre
inc – ingreso familiar
smoke – si fuma o no la madre
35
¿preguntas?
Gracias!
[email protected]
http://nbecerrastatistics.wordpress.com/
36