3D Surface Chart Extension Object

    PLEASE NOTE: THIS EXTENSION OBJECT HAS BEEN SUPERSEDED BY A MORE COMPREHENSIVE AND COMPLETE VERSION WHICH MAY BE ACCESSED AT THE FOLLOWING LINK: http://community.qlik.com/docs/DOC-3303


    (as at 28/7/2012)

    --------------------------------------------------

    After developing my first extension object, I have to say I am now hooked.It is alot of fun researching new visualisations and putting them together within the QlikView framework. Thankfully, there are a lot of very smart people out there who are happy to share the fruits of their labour on the web. It is often not hard to leverage their good work within QlikView with some basic web coding skills. I can do a little javascript coding, so I have purposefully sought out javascript utilities to build the objects I needed.

     

    In my last extension object (http://community.qlik.com/docs/DOC-3111) I utilised a powerful but simple to use javascript library called Raphael. For this one I have used a pre-built Surface Chart API that was developed by a chap named Greg Ross. More information on this API can be found here http://www.grvisualisation.50webs.com/javascript_surface_plot.html 

     

    Below is a screen shot of the chart from within QlikView. attached is the extension object, the data and a QlikView application that utilises both. You now CAN click and drag the chart in a 360 degree motion to analyse the share of the data (initially that did not work). This aspect of the chart is very, very cool!

    surfaceChart.jpg

     

    POINTS TO NOTE:

     

    The chart does not work in IE at the moment. IE does not provide some of the inbuilt functionality needed to render the chart properly. It seems that 'Web Mode' in the QlikView desktop emulates IE so the chart wont work in the desktop client either. You will need to deploy the extension to the server and view the QVW from there with a non-IE browser. I used Chrome but others should work.

     

    I have not changed the extension object code to a QAR, as it wont work within the desktop product anyway (see above). Simply unzip the code to your server directory C:\ProgramData\QlikTech\QlikViewServer\Extensions\Objects and copy the QVW to your server.

     

    Note that the chart API itself does not auto-scale. It displays the results within a 0-1 range. For the moment you can get around that by 're-shaping' your data to fit that range.

     

    If there are zeroes in your data then QlikView doesnt pass them to the chart. To get around this you need to add an extra expression to the chart that always equates to a number eg. sum(1). The extra expression is not used in the chart, but forces every row to be included.