This is an introduction to wordcloud2 package. This package provides an HTML5 interface to wordcloud for data visualization. Timdream’s wordcloud2.js is used in this package. png

This document show two main function in Wordcloud2:

  1. wordcloud2: provide traditional wordcloud with HTML5
  2. letterCloud: provide wordcloud with selected word(letters).

install wordcloud2

You may have installed this package. Well, I still want to leave these codes here for installing.

require(devtools)
install_github("lchiffon/wordcloud2")

wordlcoud2 function

You can use wordcloud directly:

library(wordcloud2)
wordcloud2(data = demoFreq)

demoFreq is a data.frame including word and freq in each column.

head(demoFreq)
##          word freq
## oil       oil   85
## said     said   73
## prices prices   48
## opec     opec   42
## mln       mln   31
## the       the   26

Parameters

Example1: use color and backgroundcolor

wordcloud2(demoFreq, color = "random-light", backgroundColor = "grey")
png

png

Example2: use rotations

wordcloud2(demoFreq, minRotation = -pi/6, maxRotation = -pi/6, minSize = 10,
  rotateRatio = 1)

Example3: use figure file as a mask.

For example, t.png is A BIRD with black and white: png

figPath = system.file("examples/t.png",package = "wordcloud2")
wordcloud2(demoFreq, figPath = figPath, size = 1.5,color = "skyblue")
png

png

letterCloud function

letterCloud provide the function to create a wordcloud with a word, like this:

letterCloud(demoFreq, word = "R", size = 2)

png

Or:

letterCloud(demoFreq, word = "WORDCLOUD2", wordSize = 1)

png wordcloud with fig and letterCloud may disappeared in Rstudio Viewer, open into brower when you meet this bug

Parameters

  • data
  • A data frame including word and freq in each column
  • word
  • A word to create shape for wordcloud.
  • wordSize
  • Parameter of the size of the word, default is 2.
  • letterFont
  • Letter font
  • ...
  • Other parameters for wordcloud2 Go to wordcloud2 in the github to leave a comment or give this package a star.

shiny

See Example:

if(require(shiny)){
  library(wordcloud2)
   # Global variables can go here
   n <- 1

   # Define the UI
   ui <- bootstrapPage(
      numericInput('size', 'Size of wordcloud', n),
     wordcloud2Output('wordcloud2')
   )


   # Define the server code
   server <- function(input, output) {
      output$wordcloud2 <- renderWordcloud2({
      # wordcloud2(demoFreqC, size=input$size)
        wordcloud2(demoFreq, size=input$size)
      })
   }
   # Return a Shiny app object
   # Sys.setlocale("LC_CTYPE","chs") #if you use Chinese character
   ## Do not Run!
   shinyApp(ui = ui, server = server)
   }