Proximidad entre el valor nutricional de los alimentos de la colección de emojis

Dataset disponible en Kaggle (https://www.kaggle.com/ofrancisco/emoji-diet-nutritional-data-sr28/data)

library(ggplot2)
# Importo el dataset
# install.packages("emojifont")
EmojisFood <- read.csv("EmojisFood.csv")

# normalizar datos
EmojisFoodN <- EmojisFood
EmojisFoodN[,c(3:35)] <- scale(EmojisFoodN[,c(3:35)])
rownames(EmojisFoodN) <- EmojisFood$name

# Calculo las distancias entre datos
distancias <- dist(EmojisFoodN)
# Hago el agrupamiento jerárquico
clusters <- hclust(distancias)

# labels
#install.packages("stringi")
library(stringi)
labels <- EmojisFood[,c(1,2)]

# function para adicionar datos de labels
trimEmojiCode <- function (df,order){
  for(i in 1:nrow(df)){
    index <- order[i]
    df[index,3] <- order[i]
    tmp <- strsplit(stringi::stri_escape_unicode(df[index,2]),"\\\\U000")
    df[i,4] <- tmp[[1]][2]
  }
  colnames(df)<- c('name','emoji','id','code')
  return (df)
}

# Nuevo dataset de labels
labels <- trimEmojiCode(labels, clusters$order)

# dendrograma
library(ggdendro)
library(ggimage)
dendrograma <- ggdendrogram (clusters, size=2)
dendrograma <- dendrograma + geom_emoji(data=labels, aes(id,-0.3,image=code),size=0.02)
dendrograma

Diagramas de radar

library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
# Parallel coordinates
EmojisFoodN$name <- as.factor(EmojisFoodN$name) 
grafica <- ggparcoord(EmojisFoodN,
                   columns=c(3:23),
                   showPoints=TRUE)
grafica <- grafica + scale_color_brewer()
grafica <- grafica + coord_polar(theta='x')
grafica <- grafica + facet_wrap(name~.)
grafica

Diagramas de barras

EmojisWithCode <- EmojisFoodN

library(reshape2)
EmojisLong <- melt(EmojisWithCode)
## Using name, emoji as id variables
plot <- ggplot(EmojisLong, aes(variable,value, group=name, fill=value))
plot <- plot + geom_bar(stat="identity") + scale_fill_viridis_c()
#plot <- plot + geom_area()
plot <- plot + facet_wrap(name~.) 
plot