I think the better solution would be to use 2 pie charts, in the first group all < 5% clients in one category "Other". In the second just map other. (again grouping clients < 5% of the other category, but not mapping them).
I think the suggestion to use a timeline series is not a good idea, pie charts are perfect for visualizing complementing percentages.
If you really want to visualize the movement of the percentages use a stacked percentage chart like this one:
I'm using a library I made in node.js (https://github.com/danzajdband/Tuiter) to retrieve the tweets server-side via the Twitter Streaming API (https://dev.twitter.com/docs/streaming-apis). Then I send the "Twitter client" to the client using Socket.IO. I'm refreshing the chart, not the entire site, every 500 ms = 1/2 seconds to update the chart.
I'm updating every 500ms and not every time I receive a tweet because of performance issues.
15 comments
[ 3.0 ms ] story [ 27.4 ms ] thread1) Group anything with less than 1 or 2ish percent into an "other" category
2) Show an alphabetized table below the pie chart.
3) Preserve label position when possible, only move the lines most of the time.
4) Animate between samples
But really, better than all this, would be a scrolling, stacked line graph.
Like these: http://smoothiecharts.org/ or http://www.highcharts.com/demo/dynamic-update
I think the suggestion to use a timeline series is not a good idea, pie charts are perfect for visualizing complementing percentages.
If you really want to visualize the movement of the percentages use a stacked percentage chart like this one:
http://www.highcharts.com/demo/area-stacked-percent
Ofcourse I would suggest 2 again, one for the big clients and one for the small ones :)
Edit: looking through the javascript, it seems that it pretty much just refreshes the page on a interval and the server gets the data from twitter
I'm updating every 500ms and not every time I receive a tweet because of performance issues.
Thanks for the feedback.
Repo: https://github.com/cheeaun/twitter-clients-chart