There is an amazing D3 wordcloud plugin for creating beautiful wordclouds. But it's not trivial for everyone to put it to use. This plugin makes it easy to create such a wordcloud.
A simple html page with a wordcloud might contain:
<html>
<head>
<title>Word Cloud</title>
<script src="lib/d3/d3.js"></script>
<script src="lib/d3/d3.layout.cloud.js"></script>
<script src="d3.wordcloud.js"></script>
</head>
<body>
<div id='cloud'></div>
<script>
d3.wordcloud()
.size([800, 400])
.selector('#cloud')
.words([{text: 'word', size: 5}, {text: 'cloud', size: 15}])
.start();
</script>
</body>
</html>
That's all! The following properties are accepted:
selector()
which css selector to create the wordcloud onelement()
an element instead of the previous selectorscale()
a d3 scale for sizing words, e.g.sqrt
,log
orlinear
fill()
a d3 scale for coloring words, e.g.d3.scale.category20b()
transitionDuration()
how many milliseconds a resize transation takes
In addition to this, the following d3-cloud properties are accepted:
size()
dimensions [width, height]words()
array of{text: 'word', size: 1}
hashesfont()
fontStyle()
fontWeight()
spiral()
, which can bearchimedean
orrectangular
padding()
As a bonus, if a word contains a href
key, the word will link to the value,
and the word will become slightly larger when the mouse hovers over (to
indicate that it is clickable, in addition to the mouse hand pointer).
- The original d3-cloud plugin
- d3-wordcloud, example of how to use d3-cloud that this plugin is based on
- Article on using d3-cloud
- Java-based wordle.net, which has inspired the d3-cloud plugin