# El objetivo de la presente actividad es practicar las funciones
# utilizadas en el software estadístico R para la graficación de
# variables en varias dimensiones, las cuales fueron analizadas y
# discutidas en el segundo parcial del curso.
# METODOLOGIA
# I. Realizar un análisis básico de las bases de datos requeridas
# para realizar los ejercicios.
# II. Discernir sobre las características de los gráficos que se
# deben realizar para la obtención de la visualización indicada.
# III. Desarrollar el código necesario para resolver los ejercicios
# indicados, utilizando las funciones analizadas y aplicadas en clase.
###Ejercicio #1
#Realizar el siguiente gráfico utilizando la base de datos mtcars
# del software estadístico R, que contiene las características de 32
# marcas de automóvil modelos 1973 y 1974. Observe el formato de la
# gráfica (partición, fondo, colores, tipo de letra, tipo de líneas,
# tipos de puntos, valores en los ejes, etiquetas, etc.).
#Debe identificar la paleta de colores que se está utilizando en el
# gráfico de Rendimiento y en el gráfico de dispersión de Rendimiento
# VS Potencia. El fondo del gráfico es color negro.
#NOTA: En el gráfico de dispersión de Rendimiento VS Potencia,
# el * corresponde al centroide de ambas variables (El punto de
# intersección de las medianas se denomina centroide) y las líneas
# blancas punteadas corresponde a las medianas de las variables.
# Consulte la ayuda de la base de datos mtcars para elegir la
# columna correcta de la tabla, que corresponde a cada variable deseada.
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
######### Matriz de arreglo en pantalla. #######
M=matrix(c(1,2,1,3),nrow=2,ncol=2)
M
## [,1] [,2]
## [1,] 1 1
## [2,] 2 3
layout(M)
layout.show(n=3)

par(bty="n", bg = "black")
########### RENDIMIENTO ###############
marcas=rownames(mtcars)
marcas
## [1] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710"
## [4] "Hornet 4 Drive" "Hornet Sportabout" "Valiant"
## [7] "Duster 360" "Merc 240D" "Merc 230"
## [10] "Merc 280" "Merc 280C" "Merc 450SE"
## [13] "Merc 450SL" "Merc 450SLC" "Cadillac Fleetwood"
## [16] "Lincoln Continental" "Chrysler Imperial" "Fiat 128"
## [19] "Honda Civic" "Toyota Corolla" "Toyota Corona"
## [22] "Dodge Challenger" "AMC Javelin" "Camaro Z28"
## [25] "Pontiac Firebird" "Fiat X1-9" "Porsche 914-2"
## [28] "Lotus Europa" "Ford Pantera L" "Ferrari Dino"
## [31] "Maserati Bora" "Volvo 142E"
plot(mtcars$mpg,
type="h",
main="Rendimiento",
col.main="cyan",
xlab="",
ylab="",
col=rainbow(32),
lwd=8, xlim=c(0,32),
ylim=c(0,35),
las=2,
xaxt="n",
yaxp=c(0,35,7),)
axis(side=1,
at=1:32,
cex.lab=0.3,
labels=marcas,
col.axis="white",
font=1,
lwd=1,
las=2 ,
xaxp=c(0,32,32))
axis(side=2,
at=0:35,
col.axis="white",
font=0.5,
lwd=0.5,
las=2)
### POTENCIA VS RENDIMIENTO ################
mmpg=median(mtcars$mpg)
mhp=median(mtcars$hp)
par( bg = "black")
plot(x=mtcars$mpg,
y=mtcars$hp,
xlim=c(0,40),
ylim=c(0,350),
xlab="Rendimiento (mpg)",
ylab="Potencia (HP)",
type="p",
pch=8,
lwd=3,
col=rainbow(6,rev = TRUE),
xaxp=c(0,40,8),
yaxp=c(0,350,7),
las=1,
col.axis="purple",
col.lab="green",
font.lab=4,
fg = "purple")
points(x=mmpg,
y=mhp,
#lty = 2,
lwd = 3,
pch=11,
col="red")
abline(h=123,
v=19.2,
lty = "dotted",
lwd = 3,
col="ivory")
#### CILINDROS VS RENDIMIENTO ###############
par(bg = "black")
grupo=ifelse(mtcars$cyl ==4 , 1,
ifelse(mtcars$cyl== 6, 2,
3))
Mexico=colorRampPalette(colors=
c("forestgreen","white", "red")) #### hacer un filtro
#https://r-coder.com/plot-en-r/#Colorear_segun_grupo
grupo <- ifelse(mtcars$cyl == 4 , "red",
ifelse(mtcars$cyl== 6 , "white", "forestgreen"))
plot(x=mtcars$mpg,
y=mtcars$cyl,
xlim=c(0,40),
ylim=c(0,8),
xlab="Rendimiento (mpg)",
ylab="Cilindros",
type="p", pch="x",lwd=5,
col.axis="cyan",
col.lab="yellow",
font.lab=2, col=grupo,fg = "cyan",xaxp=c(0,40,20), yaxp=c(4,8,2), las=1) #col=Mexico(n=3)

### Ejercicio 2
# Realizar el siguiente gráfico utilizando las bases de datos ldeaths, fdeaths y mdeaths (decesos mensuales causados por bronquitis, enfisema y asma en Reino Unido desde enero de 1974 hasta diciembre de 1979) del software estadístico R. Observe el formato de cada gráfica (barras, colores, valores en los ejes, etiquetas, etc.). Consulte la ayuda de las 3 bases de datos para elegir la variable correcta que corresponde a cada histograma.
# Three time series giving the monthly deaths from bronchitis, emphysema and asthma in the UK, 1974–1979, both sexes (ldeaths), males (mdeaths) and females (fdeaths).
######### Matriz de arreglo en pantalla. #######
M=matrix(c(1,1,2,3),nrow=2,ncol=2)
M
## [,1] [,2]
## [1,] 1 2
## [2,] 1 3
layout(M)
layout.show(n=3)

par(bty="n")
########### Decesos Mensuales. ############
hist(ldeaths,
main="Decesos Mensuales por Enfermedades Respiratorias en Reino Unido",
col.main="darkblue",
cex.main=0.9,
col=cm.colors(n=6,rev=TRUE,alpha=1), # alpha =1 opaque
col.axis="#AA4A44", # rojo ladrillo
col.lab="forestgreen",
xlab="Decesos",
ylab="Cantidad de Meses",
ylim=c(0,28),
labels=TRUE)
########### Decesos Mensuales en Mujeres. ############
hist(fdeaths,
main="Decesos Mensuales en Mujeres",
col.main="darkblue",
cex.main=1,
col="magenta",
col.axis="#AA4A44", # rojo ladrillo
col.lab="forestgreen",
xlab="Decesos",
xaxp=c(300,1200,10),
ylab="Cantidad de Meses",
density = 25,
angle= 45,
border="black")
########### Decesos Mensuales en Hombres. ############
hist(mdeaths,
main="Decesos Mensuales en Hombres",
col.main="darkblue",
cex.main=1,
col="cyan",
col.axis="#AA4A44", # rojo ladrillo
col.lab="forestgreen",
xlab="Decesos",
xaxp=c(800,2800,10),
ylab="Cantidad de Meses",
density = 25,
angle= 135,
border="black")

### Ejercicio 3
# Realizar el siguiente gráfico utilizando la base de datos Seatbelts
# (personas lesionadas o fallecidas mensualmente por accidentes
# automovilísticos en Gran Bretaña desde enero de 1969 hasta diciembre de
# 1984) del software estadístico R. Observe el formato de la gráfica
# (ordenamiento, colores, etiquetas, etc.). NO debe incluir la columna
# referente a la aplicación de la ley de tránsito al realizar el gráfico.
head(Seatbelts)
## DriversKilled drivers front rear kms PetrolPrice VanKilled law
## [1,] 107 1687 867 269 9059 0.1029718 12 0
## [2,] 97 1508 825 265 7685 0.1023630 6 0
## [3,] 102 1507 806 319 9963 0.1020625 12 0
## [4,] 87 1385 814 407 10955 0.1008733 8 0
## [5,] 119 1632 991 454 11823 0.1010197 10 0
## [6,] 106 1511 945 427 12391 0.1005812 13 0
Seatbelt=Seatbelts[,-8] #NO debe incluir la ley de tránsito
head(Seatbelt)
## DriversKilled drivers front rear kms PetrolPrice VanKilled
## [1,] 107 1687 867 269 9059 0.1029718 12
## [2,] 97 1508 825 265 7685 0.1023630 6
## [3,] 102 1507 806 319 9963 0.1020625 12
## [4,] 87 1385 814 407 10955 0.1008733 8
## [5,] 119 1632 991 454 11823 0.1010197 10
## [6,] 106 1511 945 427 12391 0.1005812 13
seatbelt=ts(Seatbelt, start=c(1969,1), end=c(1984,12), frequency=12)
head(seatbelt)
## DriversKilled drivers front rear kms PetrolPrice VanKilled
## [1,] 107 1687 867 269 9059 0.1029718 12
## [2,] 97 1508 825 265 7685 0.1023630 6
## [3,] 102 1507 806 319 9963 0.1020625 12
## [4,] 87 1385 814 407 10955 0.1008733 8
## [5,] 119 1632 991 454 11823 0.1010197 10
## [6,] 106 1511 945 427 12391 0.1005812 13
fechas=seq(as.Date("1969-01-01"), as.Date("1984-12-01"), by="1 month")
stars(x=seatbelt,
main="Lesiones y Decesos Mensuales por Accidentes Automovilisticos en Gran Bretaña",
col.main="purple",
cex=0.5,
sub="Enero de 1969 a Diciembre de 1984",
col.sub="coral",
cex.sub=1.5,
#frame.plot = c(2,2),
labels=format(fechas,format="%b %Y"),
flip.labels=FALSE,
key.xpd= NA, #
key.loc = c(29,22), # coordenadas del pie con legendas
full=TRUE, # dibuja el pie completo
draw.segments = TRUE,
col.segments = rainbow(7),
ncol=24,
nrow=8)

### Ejercicio #4
# Realizar el siguiente gráfico utilizando la información del archivo
# “Encuesta Partidos Politicos.csv” referente a la preferencia en México
# para las votaciones 2022 de personas de la 3ra. edad, adultos y jóvenes.
# Observe el formato de la gráfica (fondo, imágenes, colores, etiquetas,
# etc.). Utilice el paquete magick para leer las imágenes en R.
# install.packages("magick")
library(magick)
## Linking to ImageMagick 6.9.12.93
## Enabled features: cairo, fontconfig, freetype, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fftw, ghostscript, x11
#Partidos=read.table(file.choose(), header=TRUE, sep="\t")
Partidos=read.table("Encuesta Partidos Políticos.txt", header=TRUE, sep="\t")
head(Partidos)
names(Partidos)
## [1] "CategoríaEdad" "PartidoPolítico"
dim(table(Partidos$PartidoPolítico,Partidos$CategoríaEdad))
## [1] 7 3
Mpartidos=as.matrix(table(Partidos$PartidoPolítico,Partidos$CategoríaEdad), nrow=7,ncol=3, byrow=TRUE)
MPartidos=as.numeric(Mpartidos)
Mpartidos
##
## 3raEdad Adulto Joven
## MC 194 377 122
## MORENA 872 1720 484
## PAN 573 971 256
## PRD 136 267 72
## PRI 420 738 218
## PT 59 95 25
## PVEM 112 219 70
colores=c("darkorange", "brown","blue", "gold", "white", "red", "green")
######Tabla=Mpartidos[,]
#rownames(MPartidos)=c("3raEdad","Adulto", "Joven")
#colnames(MPartidos)=c("MC","MORENA", "PAN","PRD", "PRI","PT", "PVEM")
mc=image_read("https://logowik.com/content/uploads/images/partido-movimiento-ciudadano-mexico8801.logowik.com.webp")
mc=image_scale(mc, "80")
morena=image_read(
"https://morena.org/wp-content/uploads/2021/02/logo_retina.png")
morena=image_scale(morena, "180")
pan =image_read("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/PAN_logo_%28Mexico%29.svg/2048px-PAN_logo_%28Mexico%29.svg.png")
pan=image_scale(pan, "80")
prd=image_read("https://logowik.com/content/uploads/images/prd-mexico5095.logowik.com.webp")
prd=image_scale(prd, "80")
pri=image_read("https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/PRI_logo_%28Mexico%29.svg/1916px-PRI_logo_%28Mexico%29.svg.png")
pri=image_scale(pri, "80")
pt=image_read("https://upload.wikimedia.org/wikipedia/commons/4/4e/Logo_PT.JPG")
pt=image_scale(pt, "80")
pvem=image_read("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Logo_Partido_Verde_%28México%29.svg/1200px-Logo_Partido_Verde_%28México%29.svg.png")
pvem=image_scale(pvem, "80")
#legend=c(mc," MC",morena," MORENA",pan, " PAN",prd," PRD",pri, " PRI",pt,"PT",pvem, "PVEM")
#leg=c(mc,morena,pan, prd,pri,pt,pvem)
#leyenda=image_append(image_scale(leg, "20"), stack = TRUE)
#lege=image_annotate(leyenda, " MC", size = 10, location = "+10", color = "black")
par(bg = "ivory")
barplot(height=Mpartidos,
main="Encuesta Votaciones México 2022",
col.main="violetred",
col.axis="purple",
cex.main=2,
ylab="Personas",
col.lab="purple",
yaxp=c(0,1800,18),
las=1,
col=colores,
legend.text=TRUE,
ylim=c(25,1750),
beside=TRUE)
rasterImage(mc, 22.5, 1425, 23.5, 1525)
rasterImage(morena, 22.5, 1250, 23.5, 1350)
rasterImage(pan, 22.6, 1075, 23.35, 1175)
rasterImage(prd, 22.5, 875, 23.5, 1000)
rasterImage(pri, 22.6, 700, 23.35, 800)
rasterImage(pt, 22.6, 500, 23.35, 600)
rasterImage(pvem, 22.5, 325, 23.5, 425)
grid(nx=0,ny=18,col="gray")

#grid.raster(pan)
#legend(x="topright",legend=leg, lty=1, lwd=2)
#### probrar agregar un marco de la grafica
#img=image_composite(pan,leyenda, offset = "+70+30")
#img <- image_draw(leyenda)
#print(as.raster(img))
#legend(x="topright",legend=c(mc," MC",morena," MORENA",pan, " PAN",prd,
# " PRD",pri, " PRI",pt,"PT",pvem, "PVEM"), lty=1, #lwd=2),
# Ejercicio #5
# Realizar el siguiente gráfico utilizando la base de datos faithful (correspondiente a las erupciones del géiser Old Faithful del Parque Nacional Yellowstone) del software estadístico R. Observe el formato de la gráfica (imagen, colores, etiquetas, formatos, etc.). Utilice como referencia para la partición de la ventana una matriz de 4 renglones y 5 columnas.
#
head(faithful)
######### Matriz de arreglo en pantalla. #######
M=matrix(c(1,1,1,1,2,1,1,1,1,2,3,3,3,3,4,3,3,3,3,4),nrow=4,ncol=5, byrow=TRUE)
M
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 1 1 1 2
## [2,] 1 1 1 1 2
## [3,] 3 3 3 3 4
## [4,] 3 3 3 3 4
layout(M)
layout.show(n=4)

par(bty="n")
## Grafica bigotes HORIZONTAL
boxplot(faithful$waiting,
main="Géiser Old Faithful",
col.main="red",
cex.main=2,
horizontal=TRUE,
col="olivedrab",
border="blue",
axes = FALSE,
lwd=1.5,
lty=1,
boxwex=0.5)
#https://cran.r-project.org/web/packages/magick/vignettes/intro.html
##### Imagen Geyser
geyser=image_read("https://media1.tenor.com/m/6fjECiIebZgAAAAC/geyser-nature.gif")%>%
image_scale("200x") %>%
image_quantize(1280)
plot(as.raster(geyser))
## Grafica xy
plot(faithful$eruptions,
faithful$waiting,
type="p",
pch=17,
cex=0.9,
xlab="Duracion de la Erupción",
ylab="Tiempo de Espera",
col="deepskyblue",
axes=FALSE)
axis(3, at= seq(1.5,5.1,0.1),las=2,col.lab="brown", cex=0.1,
col.axis="darkgreen", col="blue" ) # Añadir el eje X superior
#xaxp=c(1.5,5.1,10)
axis(4, at= seq(40,100,5), las=2,col.lab="brown", cex=0.3,
col.axis="orange", col="blue") # Añadir el eje Y derecho
#yaxp=c(40,100,10)
## GRAFICA DE BIGOTES VERTICAL
boxplot(faithful$eruptions,
horizontal=FALSE,
col="orange",
border="blue",
axes = FALSE,
lwd=1.5,
lty=1,
boxwex=1.5)
