devtools::install_github("jbkunst/d3wordcloud")
library("d3wordcloud")
words <- c("I", "love", "this", "package", "but", "I", "don't", "like", "use", "wordclouds!", "voila")
freqs <- rev(seq(length(words))) + 10
d3wordcloud(words, freqs)
library("d3wordcloud")
library("tm")
library("dplyr")
library("viridis")
data(crude)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, function(x){ removeWords(x, stopwords()) })
tdm <- TermDocumentMatrix(crude)
m <- as.matrix(tdm)
v <- sort(rowSums(m), decreasing = TRUE)
d <- data.frame(word = names(v), freq = v)
d <- d %>% tbl_df()
d <- d %>% arrange(desc(freq))
d <- d %>% head(100)
words <- d$word
freqs <- d$freq
d3wordcloud(words, freqs)
d3wordcloud(words, freqs, colors = "#FFAA00")
Each word has its own color, only hedecimal format!
set.seed(123)
colors <- sample(substr(rainbow(length(words)), 0 , 7))
d3wordcloud(words, freqs, colors = colors)
We can add a gradient between colors acording the freq (size)
d3wordcloud(words, freqs, colors = c("#FF0000", "#00FF00", "#0000FF"))
d3wordcloud(words, freqs, colors = substr(viridis(10, 1), 0 , 7))
Only works when you have a web connection and it works only with fonts on https://www.google.com/fonts https://www.google.com/fonts/specimen/Erica+One
d3wordcloud(words, freqs, font = "Erica One", padding = 5)
https://www.google.com/fonts/specimen/Anton
d3wordcloud(words, freqs, font = "Anton", padding = 7)
d3wordcloud(words,freqs, spiral = "archimedean") # default
d3wordcloud(words,freqs, spiral = "rectangular")
d3wordcloud(words,freqs, size.scale = "linear") # default
d3wordcloud(words,freqs, size.scale = "log")
d3wordcloud(words,freqs, size.scale = "sqrt")
Just work only when you put some colors with length(colors) != length(words)
The differences between colors are minimal but exists!
colors <- substr(viridis::viridis(3), 0 , 7)
colors
## [1] "#440154" "#21908C" "#FDE725"
d3wordcloud(words,freqs, colors = colors, color.scale = "linear") # default
d3wordcloud(words,freqs, colors = colors, color.scale = "log")
d3wordcloud(words,freqs, colors = colors, color.scale = "sqrt")
d3wordcloud(words, freqs, rotate.min = 0, rotate.max = 0)
d3wordcloud(words, freqs, rotate.min = 45, rotate.max = 45)
d3wordcloud(words, freqs, rotate.min = -180, rotate.max = 180)
d3wordcloud(words, freqs, tooltip = TRUE)
d3wordcloud(words, freqs, rangesizefont = c(10, 20))