LOREM IPSUM

Transcripción

LOREM IPSUM
CURSOS DE VERANO 2014
APROXIMACIÓN
TÍTULO DEL CURSO
PRÁCTICA A LA CIENCIA DE DATOS Y BIG
DATA: HERRAMIENTAS KNIME, R, HADOOP Y MAHOUT
TÍTULO PONENCIA
Visualización de datos con R
NOMBRE PROFESOR
Francisco Charte Ojeda
Epígrafe o tema
Contenidos
 Gráficos básicos
 Histogramas
>> graficosBasicos.R <<
 Agrupación de gráficos
 Almacenamiento de gráficos
 Introducción a ggplot2
 Otras posibilidades gráficas
>> graficosAvanzados.R <<
plot(iris$Petal.Length,
iris$Petal.Width,
col = iris$Species, pch = 19,
xlab = 'Longitud del pétalo',
ylab = 'Ancho del pétalo')
1.5
2.0
2.5
IRIS
1.0
title(main = 'IRIS',
sub = 'Pétalos según specie',
col.main = 'blue', col.sub = 'blue')
0.5
Ancho del pétalo
Gráficos
Epígrafe básicos
o tema ► Nube de puntos
setosa
1
2
3
4
versicolor virginica
5
6
Longitud del pétalo
Exploración de los pétalos según especie
7
legend("bottomright",
legend = levels(iris$Species),
col = unique(iris$Species),
ncol = 3, pch = 19, bty = "n")
7
Gráficos
Epígrafe básicos
o tema ► Gráfico de cajas (bigotes)
5
4
3
7
2
IRIS
6
1
boxplot(iris$Petal.Length ~ iris$Species)
title(main = 'IRIS',
ylab = 'Longitud pétalo',
sub = 'Análisis de pétalo por familia')
4
3
iris$Species
5
virginica
2
versicolor
1
setosa
Longitud pétalo
iris$Petal.Length
6
plot(iris$Petal.Length ~
iris$Species)
setosa
versicolor
virginica
Análisis de pétalo por familia
Gráficos
Epígrafe básicos
o tema ► Líneas
Precio de cierre según día
plot(meanPricesUS, type = "o",
axes = F, ann = F, col = "blue")
48
45
lines(meanPricesEUR,type="o",col="red")
Precio final
42
39
axis(1, at=1:length(meanPricesUS),
lab = names(meanPricesUS))
36
33
30
27
axis(2, at = 3*0:rango[2], las = 1)
24
$
€
21
Fri
Mon
Sat
Día
Sun
Tue
title(main='Precio de cierre según día',
xlab = 'Día', ylab = 'Precio final')
legend("bottomright", c("$","€"),
col = c("blue","red"), lty = c(1,1))
Gráficos
Epígrafe básicos
o tema ► Barras
80
100
Número de operaciones por dia
barplot(sapply(
endPricePerDay$EUR, length),
col = rainbow(7))
0
20
40
60
title(main = 'Operaciones por día')
Fri
Mon
Sat
Sun
Thu
Tue Wed
Gráficos
Epígrafe básicos
o tema ► Barras
Accuracy
Precision
RAkEL-BR
LP-J48
IBLR-ML
HOMER
CLR
BR-J48
0.0
0.1
0.2
0.3
0.4
0.5
accuracy <- aggregate(
Accuracy ~ Algorithm, results, mean)
precision <- aggregate(
Precision ~ Algorithm, results, mean)
valMedios <- matrix(c(
precision$Precision,
accuracy$Accuracy),
nrow=6, ncol=2)
rownames(valMedios) <accuracy$Algorithm
0.6
barplot(valMedios, beside=T, horiz=T,
col = cm.colors(6),
legend.text=T, names.arg =
c('Accuracy', 'Precision'))
Gráficos
Epígrafe básicos
o tema ► Sectores (circular o tarta)
Productos por categoría
opPorCategoria <- aggregate(
ClosePrice ~ Category,
ebay,length)[1:8,]
178
177
colores <- topo.colors(length(
opPorCategoria$Category))
54
18
36
119
37
Antique/Art/Craft
Automotive
239
Books
Clothing/AccessoriesCollectibles
Business/Industrial Coins/Stamps
Computer
pie(opPorCategoria$ClosePrice,
labels=opPorCategoria$ClosePrice,
col=colores,
main='Productos por categoría')
legend("bottom",
opPorCategoria$Category,
cex=0.6, fill=colores, ncol=4)
Histogramas
► Frecuencia
Epígrafe o tema
Elevación del terreno
100000
50000
0
Frequency
150000
hist(covertype$elevation,
breaks = 12,
col = rainbow(12),
main = 'Elevación del terreno',
xlab = 'Metros')
2000
2500
3000
Metros
3500
4000
Histogramas
► Frecuencia
Epígrafe o tema
Elevación del terreno
5000
10000
plot(histograma, col =
ifelse(histograma$breaks < 2500,
'green',
ifelse(histograma$breaks > 3000,
"red", "blue")),
main = 'Elevación del terreno',
xlab = 'Metros')
0
Frequency
15000
20000
histograma <- hist(covertype$elevation,
breaks = 100)
2000
2500
3000
Metros
3500
Histogramas
► Densidad
Epígrafe o tema
Distribución normal
0.20
0.10
0.00
Density
0.30
plot(density(rnorm(1000),
adjust = 3),
col = 'blue', lwd = 4,
main = 'Distribución normal',
xlab = 'Valores')
-4
-2
0
Valores
2
4
Histogramas
► Histograma + Densidad
Epígrafe o tema
0.0010
hist(covertype$elevation, prob = T,
col = "grey",
main = 'Elevación del terreno',
xlab = 'Metros')
0.0005
lines(density(covertype$elevation,
adjust = 5), col = 'black',
lwd = 3)
0.0000
Density
0.0015
Elevación del terreno
2000
2500
3000
Metros
3500
40 50
10
5
6
7
2.0
3.0
4.0
Sepal.Width
n:150 m:0
40
50
Sepal.Length
n:150 m:0
8
0
0
4
30
virginica
20
versicolor
10
setosa
0
Frequency
hist(iris)
20 30
Frequency
60
40
20
Frequency
20
5 10
0
Frequency
30
Histogramas
► Histogramas de objetos compuestos
Epígrafe o tema
30
0.0
1.0
2.0
Petal.Width
n:150 m:0
70
Frequencies for Species
1
3
5
Petal.Length
n:150 m:0
7
Agrupación
de gráficos ► Proyecciones 2D
Epígrafe o tema
3.0
4.0
0.5
1.5
2.5
7.5
2.0
4.0
4.5
6.0
Sepal.Length
5
7
2.0
3.0
Sepal.Width
1.5
2.5
1
3
Petal.Length
0.5
Petal.Width
4.5
6.0
7.5
1
3
5
7
plot(iris[ ,1:4],
col = iris$Species)
4.5
5.5
6.5
2.5
1.5
0.5
iris$Petal.Width
4.0
3.0
2.0
iris$Sepal.Width
Agrupación
de gráficos ► mfrow/mfcol
Epígrafe o tema
7.5
1
4.5
5.5
6.5
7.5
iris$Sepal.Lengt
3
4
5
6
7
2.0
3.0
4.0
iris$Petal.Lengt
iris$Sepal.Width
2.5
1.5
0.5
iris$Petal.Width
iris$Sepal.Lengt
2
1
2
3
4
5
6
iris$Petal.Lengt
7
prev <- par(mfrow=c(2,2))
plot(iris$Sepal.Length,
iris$Sepal.Width,
col=iris$Species)
plot(iris$Petal.Length,
iris$Petal.Width,
col=iris$Species)
plot(iris$Sepal.Length,
iris$Petal.Width,
col=iris$Species)
plot(iris$Petal.Length,
iris$Sepal.Width,
col=iris$Species)
par(prev)
Agrupación
de gráficos ► layout
Epígrafe o tema
# 2x2 con 3 gráficas
layout(matrix(c(1,1,2,3), 2, 2,
byrow = T))
800
400
0
Frequency
Duración subasta
2
4
6
8
10
Días
Operaciones por día
Tue
Wed
Día
Thu
Sun
Sat
20 40 60 80
Mon
0
45
42
39
36
33
30
27
24
21
Fri
Euros
Wed
Tue
Thu
Sun
Sat
Mon
Fri
Precio cierre por día
# Gráfico 1 ocupa 1ª fila
hist(ebay$Duration,
main='Duración subasta',
xlab='Días')
# Gráfico 2 en 1ª col de 2ª fila
barplot(sapply(
endPricePerDay$EUR, length),
col = rainbow(7),
horiz=T,las=1)
# Gráfico 3 en 2ª col de 2ª fila
plot(meanPricesEUR, type="o")
Almacenamiento
Epígrafe o tema de gráficos ► Opciones de RStudio
Almacenamiento
Epígrafe o tema de gráficos ► Funciones de R
 Generan un archivo en el formato adecuado
 Mapas de bits: png(), bmp(), jpeg(), tiff()
 Vectoriales: win.metafile()
 Otros: postscript(), pdf()
 Parámetros generales
 filename, width, height, pointsize, quality
 Desactivación de la salida al archivo
 dev.off()
 Ejemplo
 pdf('Subastas.pdf', width=8.3, height=11.7) # A4
hist(iris)
# Una gráfica por página
dev.off()
# Cerrar PDF
Almacenamiento
Epígrafe o tema de gráficos ► Animaciones
 Funciones en paquete animations
 saveGIF(), saveVideo(), saveHTML(), saveLatex()
 Ejemplo de uso
saveGIF({
for(lim in seq(-3.14,3.14,by=0.1))
curve(sin, from=lim,
to=lim + 9.42)
}, movie.name="animacion.gif",
interval=0.2, ani.width=640,
ani.height=640)
Epígrafe o tema
Introducción
a ggplot2
 Ventajas sobre los gráficos básicos
 Estética mejorada y altamente personalizable
 Mayor flexibilidad y control
 Más facilidad para generar gráficos con datos complejos
 Recursos necesarios
 Instalar paquete ggplot2
 Documentación en http://docs.ggplot2.org/current
 ggplot2: Elegant Graphics for Data Analysis
 Ejemplos disponibles en http://ggplot2.org/book
Introducción
a ggplot2 ► Nube de puntos
Epígrafe o tema
4.5
Species
4.0
setosa
Sepal.Width
versicolor
virginica
3.5
Petal.Width
0.5
3.0
1.0
1.5
2.0
2.5
2.5
2.0
5
6
Sepal.Length
7
8
qplot(Sepal.Length,
Sepal.Width,
data=iris,
colour=Species,
size=Petal.Width)
Introducción
a ggplot2 ► Líneas
Epígrafe o tema
8
Sepal.Length
7
Species
setosa
versicolor
6
virginica
5
2
4
Petal.Length
6
qplot(Petal.Length,
Sepal.Length,
data=iris,
color=Species) +
geom_line()
Introducción
a ggplot2 ► Nube de puntos + Curvas de regresión
Epígrafe o tema
qplot(Petal.Length,
Petal.Width, data=iris,
color=Species) +
geom_point() +
geom_smooth()
Introducción
a ggplot2 ► Densidad
Epígrafe o tema
qplot(elevation,
data=covertype,
geom="density",
fill=wilderness_area)
0.003
density
wilderness_area
1
0.002
2
3
4
0.001
0.000
2000
2500
3000
elevation
3500
Introducción
a ggplot2 ► Facets
Epígrafe o tema
# Representar 5 variables
qplot(ClosePrice,
sellerRating,
data=ebay[ebay$endDay %in%
c('Wed','Thu','Fri') &
ebay$currency != 'US',],
facets=currency ~ endDay,
color=Duration)
Introducción
a ggplot2 ► Facets
Epígrafe o tema
Fri
Mon
qplot(currency, ClosePrice,
data=ebay[ebay$endDay != 'Wed',],
fill=currency) +
geom_bar(stat='identity') +
facet_wrap(~endDay)
Sat
15000
10000
5000
ClosePrice
currency
0
EUR
Sun
Thu
Tue
GBP
15000
US
10000
5000
0
EUR
GBP
US
EUR
GBP
currency
US
EUR
GBP
US
Epígrafe
Otras
posibilidades
o tema
gráficas
 Medio centenar de paquetes gráficos sólo en CRAN
 http://cran.r-project.org/web/views/Graphics.html
 Interacción con los gráficos desde navegador web
 Shiny: http://shiny.rstudio.com/
 Multitud de tipos de gráficas alternativas
 circos, radar, 3D, etc.
 Gráficos no generados a partir de datos
 TurtleGraphics
Otras
posibilidades
gráficas ► circlize
Epígrafe
o tema
Otras
posibilidades
gráficas ► radarchart (paquete fmsb)
Epígrafe
o tema
emotions
1
corel1
1
scene
1ebay
1
yeast
Otras
posibilidades
gráficas ► scatterplot3d
Epígrafe
o tema
-5
0.5
-1.0
0.0
-0.5
-0.5
0.0
x
0.5
1.0
-1.0
y
0
1.0
-10
z
5
10
Helix
Otras
posibilidades
gráficas ► lattice
Epígrafe
o tema
Elevación del terreno
Y
Z
X
Otras
posibilidades
gráficas ► TurtleGraphics
Epígrafe
o tema
turtle_do({
for(j in 1:45) {
for(i in 1:6) {
turtle_forward(20)
turtle_right(360/6)
}
turtle_right(360/45)
}})
CURSOS DE VERANO 2014
APROXIMACIÓN
TÍTULO DEL CURSO
PRÁCTICA A LA CIENCIA DE DATOS Y BIG
DATA: HERRAMIENTAS KNIME, R, HADOOP Y MAHOUT
TÍTULO PONENCIA
Visualización de datos con R
NOMBRE PROFESOR
Francisco Charte Ojeda

Documentos relacionados