Heatmap de Vehículos

library("ggplot2")
str(mpg)
## tibble [234 x 11] (S3: tbl_df/tbl/data.frame)
##  $ manufacturer: chr [1:234] "audi" "audi" "audi" "audi" ...
##  $ model       : chr [1:234] "a4" "a4" "a4" "a4" ...
##  $ displ       : num [1:234] 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
##  $ year        : int [1:234] 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
##  $ cyl         : int [1:234] 4 4 4 4 6 6 6 4 4 4 ...
##  $ trans       : chr [1:234] "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
##  $ drv         : chr [1:234] "f" "f" "f" "f" ...
##  $ cty         : int [1:234] 18 21 20 21 16 18 18 18 16 20 ...
##  $ hwy         : int [1:234] 29 29 31 30 26 26 27 26 25 28 ...
##  $ fl          : chr [1:234] "p" "p" "p" "p" ...
##  $ class       : chr [1:234] "compact" "compact" "compact" "compact" ...
#mpg

mpg1999 <- subset(mpg, mpg$year==1999 & mpg$class=="suv")
mpg1999 <- mpg1999[complete.cases(mpg1999),]
#mpg1999

#Normalizar columnas numericas
mpg1999_Norm <- scale(mpg1999[, c(3, 5, 8, 9)])
#mpg1999_Norm

#Nombrar las filas
rownames(mpg1999_Norm) <- mpg1999$model


#Calcular distancias
mpg1999_Distancias <- dist(mpg1999_Norm)
#mpg1999_Distancias

#install.packages("reshape2")
library("reshape2")

#Convertir de wide a long
mpg1999_Long <- melt(data.matrix(mpg1999_Distancias))
#mpg1999_Long

#Generar el gráfico
grafico <- ggplot(mpg1999_Long, aes(Var1, Var2, fill=value))
grafico <- grafico + geom_tile()
#grafico <- grafico + scale_fill_brewer()
#grafico <- grafico + scale_fill_distiller(palette = "Oranges")
grafico <- grafico + scale_fill_viridis_c()
grafico <- grafico + theme(axis.title.x = element_text(angle = 90))
grafico

Dendograma

mpg1999_Cluster <- hclust(mpg1999_Distancias)

library("ggdendro")
grafico <- ggdendrogram(mpg1999_Cluster, size=2)
grafico