.NET, Data Visualization

Exploding Bubbles: Visualising Multi-dimensional Data using Infragistics Silverlight Controls (Part 1)

The Short Version

You can interact with the chart by:

  • Left-clicking on bubbles to explode them
  • Right-clicking on exploded bubbles to implode them

[Run Exploding Bubbles]

UPDATE: Exploding Bubbles was made into a showcase application by Infragistics. It was restyled and renamed to Population Explosion. The restyled version can be found here:

[Run Population Explosion]

The Long Version

In a fascinating video titled Nano-data and Now-Casting: The Analytics Revolution, MIT Sloan Professor Roberto Rigobon says,

“The world has a lot of data, now available [sic]. (But), the world has very little information.”

In a previous post, I touched upon the need for innovative ways to make meaning from the large amount of data that we have access to today and the growing importance of analytics:

“Massive amounts of data – either publicly available, or within enterprises – is a defining feature of computing today, and of growing importance for tomorrow.  In fact it’s given rise to a new discipline: data science. As the amount of data grows, traditional methods and tools for making sense of all this data break down and new innovations are necessary.”

One of the ways to understand data is interactive data visualisations. Multidimensional data is especially tricky to visualise because of the complexities of each data point, but if done properly, can provide real insight from the macro- as well as micro-level. A great example of this is the “exploding bubbles” technique, presented by Hans Rosling in a TED Talk from 2006. Look for exploding bubbles starting from around 9m30s into the video.

Inspired by this, I developed the Exploding Bubbles application using Infragistics Silverlight and Silverlight Data Visualization controls.

Here is a video of Exploding Bubbles in action:

This is what the application looks like when you first run it:

Image001

On the left you will notice a pivot grid showing multidimensional data. On the right is a bubble chart, a visualisation of that data.

The pivot grid shows global “health and wealth” statistics. The data is plotted on the chart in the following way:

  • Population is depicted by bubble size
  • GDP Per Capita is depicted on the X-axis on a logarithmic scale
  • Life Expectancy is depicted on the Y-axis on a linear scale

You can interact with the chart by:

  • Left-clicking on bubbles to explode them
  • Right-clicking on exploded bubbles to implode them

You can also interact with pivot grid by expanding or collapsing rows – the bubble chart is synchronised with the pivot grid’s data.

Image002
Image003

You can download the source code from here: http://dl.dropbox.com/u/15104486/ExplodingBubbles.zip

Have fun!

In following posts, I will talk about the implementation details and cover aspects of the following Infragistics controls/features:

  • Pivot Grid
  • Data Chart
  • Excel
  • Dock Manager
  • Motion Framework
  • Theming

In the meantime, for more details of what you can achieve using these and other Silverlight controls from Infragistics, you can browse through the samples and read the documentation.

Read the rest of the posts in the series:

Part 2: Data Aspects

Part 3: Visualisation Aspects

Part 4: Docking, Theming, Cloud Deployment

Standard
Gadgets

Samsung Galaxy SII: The best smartphone you can buy today?

When the iPhone was introduced, it was a true game-changer, defining what it meant to be a smartphone. For a long time it has been the best phone available. By far. It has been the phone that every other phone has tried to live up to.

However, since Android phone sales overtook iPhone sales about a year ago, it’s been hard to miss the clamour surrounding Android.

When my close-to-three-year old iPhone 3G died a few weeks ago, my interest in Android turned from academic to pragmatic. I have been unabashedly enthusiastic about Apple products, but wanted to see what the Android fuss was about, instead of just buying an iPhone 4 or waiting for the iPhone “5”. 

It became clear, at least to my mind, that Android is a better operating system than iOS, and that surprisingly, Apple is playing catch-up. For example, features such as unobtrusive notifications and cloud-syncing have been available in Android for a long time, but are only appearing in iOS 5 now. Android has support for Flash. It also has support for creating a WiFi hotspot that uses the phone’s connectivity!

There’s more to like. The iPhone’s user experience is extremely polished all-round, but you’re pretty much stuck with what Apple gives you. On Android however, you can customise pretty much every aspect of the phone. For example, you can replace the default homesreen, lockscreen, keyboard, sms application or web browser. Android is a lot more open and flexible. For example, you can copy a directory of videos directly on to your phone without having to use iTunes as an intermediary. Or you can automatically change various settings via applications like Tasker and Locale. This is extremely appealing to a “power user” like me. Also, I must say I was quite impressed with the user experience of HTC Sense (HTC’s UI on top of Android).

There are of course far more apps in the Apple App Store versus the Google Android Market, but the Android market is growing fast and developers are increasingly choosing to move to Android’s far less restrictive policies. Apple should be worried.

And then there’s the hardware. The likes of Samsung, HTC and LG are churning out phones at a frantic pace. That means the cutting edge is found there. So, despite HTC’s great user experience, I bought the Samsung Galaxy SII. And I couldn’t be happier with it.

Here’s what I love about it:

Screen: It has absolutely gorgeous 4.3 Super AMOLED Plus screen with very deep blacks and colours that pop-out. It’s hard to imagine using anything else after spending some time with it.

Speed: It has a 1.2 GHz dual core processor that just screams.

Build: At 8.5mm, it’s the slimmest smartphone in the world. It’s also incredibly light. It has a lovely, sleek minimalistic all-black design with an unobtrusive gunmetal insert. Holding it in your hand, it’s hard to imagine there’s so much inside!

Storage: 16GB built-in plus an SD card slot.

Camera: Excellent 8MP camera plus a front-facing camera for video calls.

The rest:

Battery life: The battery life is a little disappointing, even though it’s supposed to be better than most other “superphones”. I often find myself needing to recharge it after half a day of moderate use. But fortunately, “there’s an app for that” 🙂  I haven’t tried it, but JuiceDefender looks promising

User Interface: Samsung’s TouchWiz 4.0 UI is so-so. Again, this is easily fixed. I replaced the homescreen and keyboard with GO Dev Team’s awesome GO Launcher EX and GO Keyboard.

I’m convinced that not only is the Samsung Galaxy SII superior to the iPhone 4 and even the 4S on both fronts (hardware and software) but is the best phone you can buy today (at least in India).
Standard
Tips & Tools

Pasting Text Without Formatting

Today I discovered PureText+, a little gem of a tool.

I copy+paste text from one program to another several times a day. By default, this preserves the formatting of the copied text, and I get around this copy+pasting into a plain-text editor (my editor of choice is TextPad) as an intermediate step.

PureText+ skips this intermediate step and pastes "pure" text without formatting. You simply have to use Windows+V to paste instead of Ctrl+V.

(It's open-source and written in C#)
Standard
Data Visualization

Stats are Sexy

If you want to know what the future holds, or find out about the most brilliant and innovative work being done in any field, there is no better freely available resource than TED videos. My inevitable reaction to a new TED video is shaking my head and thinking “brilliant, just brilliant”. Like this one from Aaron Koblin, in which he talks about his works spanning data visualization, crowdsourcing, digital art and social experimentation bordering on cheekiness.

Massive amounts of data – either publicly available, or within enterprises – is a defining feature of computing today, and of growing importance for tomorrow.  In fact it’s given rise to a new discipline: data science. As the amount of data grows, traditional methods and tools for making sense of all this data break down and new innovations are necessary. A defining piece of work in data visualizations was Hans Rosling’s work on GapMinder which he presented a few years ago. The world got to know about it through TED:

At Infragistics, our product range includes general-purpose high-performance data visualization controls, making it easy for you build rich, powerful data visualizations for web, desktop and mobile applications. One of the innovative features is the Motion Framework, which allows you do visualize how data has changed over time, just like in the video above.  The WorldStats sample shows the same Gapminder data as in Hans’ video: http://labs.infragistics.com/motion-framework/world-stats/

Image001

WorldStats uses a bubble chart, but Motion Framework can be used to automatically animate any type of chart included in our Data Visualization framework including maps!

Standard
.NET

iOS Development with .NET

Three years ago I blogged about the “iPhone bringing the Internet to your pocket”.  And now we have the iPad, the target device for most innovation in tablet apps.

If, like me, you’re keen to build iOS apps but are primarily a Microsoft developer and are daunted by the learning curve of a whole new platform, then MonoTouch might be for you: http://monotouch.net/

MonoTouch is a bridge between .NET and the native iOS API called CocoaTouch.  It exposes the CocoaTouch as a .NET library so you can write code in C# instead of Objective-C. This gives you access to all the native CocoaTouch GUI widgets and a whole bunch of regular .NET libraries.

Media_httpwwwmonoproj_kjezj
Media_httpwwwmonoproj_krhgf
Image001

This is really neat!  Have a look at the Hello World tutorial to get a better feel of MonoTouch: http://monotouch.net/Tutorials/MonoDevelop_HelloWorld

Standard