A Tag cloud is a visual representation of text data. In this tags are words, where the importance is highlighted using colour or font size. This is very popular now to analyse contents of websites. This helps in quickly perceiving the most important words. The importance is calculated by counting the number of occurance. Thus based on occurance, weightage is given to each word(tag). After analysing the whole text, it is displayed based on it weightage. Thus tag cloud will be generated. open cloud is a java library for generating tag clouds. Here I used Open cloud library for the generation of Tag cloud. Normally we need a webserver for getting a good UI of the TagCloud, here we are displaying the cloud using Swing. This is a sample program for the generation of a simple tag Cloud. For this download the Open Cloud Library.
package tagcloud; import java.util.Random; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; import org.mcavallo.opencloud.Cloud; import org.mcavallo.opencloud.Tag; public class TestOpenCloud { private static final String[] WORDS = { "amal", "india", "hello", "amal", "birthday", "amal", "hello", "california", "america", "software", "cat", "bike", "car", "christmas", "city", "zoo", "amal", "asia", "family", "festival", "flower", "flowers", "food", "little", "friends", "fun", "amal", "outing", "india", "weekend", "india", "software", "me", "music", "music", "music", "new", "love", "night", "nikon", "morning", "love", "park", "software", "people", "portrait", "flower", "sky", "travelling", "spain", "summer", "sunset", "india", "city", "india", "amal", "uk", "usa", "", "water", "wedding","cool","happy","friends","best","trust","good", "enjoy","cry","laugh"}; protected void initUI() { JFrame frame = new JFrame(TestOpenCloud.class.getSimpleName()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); Cloud cloud = new Cloud(); Random random = new Random(); for (String s : WORDS) { for (int i = random.nextInt(50); i > 0; i--) { cloud.addTag(s); } } for (Tag tag : cloud.tags()) { final JLabel label = new JLabel(tag.getName()); label.setOpaque(false); label.setFont(label.getFont().deriveFont((float) tag.getWeight() * 10)); panel.add(label); } frame.add(panel); frame.setSize(800, 600); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new TestOpenCloud().initUI(); } }); } }
I Amal I liked example for generating TagCloud, I need a little help I want to do the same from an REST URL which is given for lets say a social networking site and which returns a JSON object. I am new to Java and dont know much about it. It would be really helpful if you could help me with anything in this regard.
Hi,
If your requirement is to get the data from a JSON and visualize in tag cloud, it is very simple. Just write a program to read the url and get the JSON, parse the JSON, get the contents, pass the contents to the tag cloud program.
If your requirement is to get the interactions using JSON, ie input as well as output. Write a Service on top of this method. Writing a service is very simple using python. You can use tornado library in python
Thanks Amal,
I will definitely try the approach suggested indeed the steps explained by you seems to be helpful.