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
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
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