Feedback: Real-time Twitter Data Visualisation on World Map with D3

Hi everyone!

So I just finished all my 3 certifications after a year of coding here and really interested in data visualisation lately. Been working on a few small data viz projects now to learn more and want to share one here:

It shows how happy or unhappy each country of the world currently is by analysing real-time Twitter data and mapping it using D3 with a color. Tweets with geolocation turned on are mapped with a happy or sad emoticon.

Pls check out and feel free to give any feedback you want!



The site looks really interesting… i have not learned D3 yet so i cant comment on the code itself, my only comments relate to the “user experience”.

  1. I would like to be able to Zoom In/Out on the map
  2. When i hover the icon, sometimes the twitter appears, other times it does not
  3. Sometimes there are countries with happy/unhappy but no “smiley” icons
  4. When the map gets crowded the icons make it a bit hard to understand
  5. The twitter “view” is a bit annoying… it changes too fast to be able to read it
  6. Create a rule for my country (Portugal) to make it always green… apparently we are a very sad people :stuck_out_tongue:
  7. The site is not responsive and required a bit screen to see it all (smaller screens and the twitter frame overlaps the map)

Just my 2 cents … but i think its a cool visualisation project :slight_smile:


I checked it out, I like what I saw. The idea’s pretty cool. Nice job on this. It might be nice to have some sort of “feed” where you can view a history of the tweets that the data is being based on since as the above poster said, it does move very fast. :slight_smile:

Thanks for checking it out!

Yes, I agree with your points. Need to do a few things to make interaction better and the icons to get really crowded.

The tweets in the box are shown as they come in from the PubNub feed, but let’s find a way to slow it down, because like this it’s not really useful

I have no idea how to make D3 responsive, since the whole thing is in bootstrap but the graph itself does not scale on smaller screen. Interesting to find out…

good idea, maybe instead of showing 1 tweet, the latest x tweets in a box and slower speed.

Next step I’m thinking is to have the user enter a keyword and then it starts visualizing all the tweets for that keyword on the map. It’s just a matter of tweaking the code a bit so it takes in the word that the user gies instead of only happy and unhappy keywords