93 Replies Latest reply: Oct 9, 2017 7:53 AM by Prince Sabi RSS

    Word Cloud Object Extension

    Brian Munz

      A new app for the US Presidential election is being released on the QlikView Demo Site shortly, and it contains an extension for a word cloud that might be useful.  It's built using this word cloud generation javascript library (built on the d3 JS library) which attempted to simulate the look and feel of Wordle:

      cloud.png

      I don't use all of the options available in this library and keep it pretty bare bones, but I imagine this extension should satisfy most use cases.

      The properties are fairly straightforward:

      cloudprops.png

      The Words dimension is simply the list of words that will be displayed in the cloud

       

      Measurement is an expression which controls the sizes of the words.  This could be anything you'd like to measure the words against.

       

      Color Expression is the expression which controls the color of the words.  If you simply want one color, you could hardcode it to a hex or RGB color, or you could use an expression and mix two colors (using the ColorMix1 function from QlikView), or use the expression like a gauge and present any number of colors based on some range.

       

      The Maximum Font Size and Minimum Font Size properties are simply the maximum and minimum sizes of the words.

       

      SOME THINGS TO NOTE:

      The cloud can be a bit unwieldly (or maybe crash) if you pass too many words into it, so I've set a maximum data set of 700 for this extension.  To change this, edit the Definition.xml file in the extension's folder and change 700 to whatever you want in this line:

      <ExtensionObject Label="wordCloud" Description="wordCloud" PageHeight="700">

      The only issue this might cause is if you have 1000 words in the dimension, a random selection of 700 will be passed in, in no particular order.  I've tried and tried to get the extension to sort based on the expression rather than the dimension and I think it's not possible (which may be a bug), so instead returning the top x number of words based on an expression might need to be done using set analysis, firstsortvalue, or ranking function.

       

      I think that's it.  Let me know if you run into any problems.

       

      EDIT

      I now host this extension on GitHub. 

      brianwmunz/wordCloud-QV11 · GitHub

      Please download it from there form now on.  Also, feel free to update, change, improve, etc. the extension in any way you please using GitHub.

      Thanks.