In part four of my Back to Basics series I am looking at keeping things simple. It is said a picture tells a thousand words – but often with a dashboard brevity is key. Perhaps you need only say ‘Raise Prices’ or ‘Something’s Broken’. How should you aim to achieve this in your own dashboards?
At the end of last year I uploaded the Quick Intelligence Christmas Card, which included an image of a dashboard with a gauge chart and a pie chart (you can view the card here). Not something I would look to do in a production document and something that Gysbert Wassenaar quite rightly picked me up on. He pointed me towards Stephen Few’s Information Dashboard Design – a text I am familiar with and highly recommend. In fact when I first read the book it caused me to want to go back and revisit some of my previous work to clean it up and make it more clear and concise. This really is the key to the effective presentation of data.
I have already blogged and uploaded a video tutorial on how you can clean up your charts, which covers chart junk in the form of caption icons, unnecessary shading and colours and a general attention to detail. Stephen Redmond has also recently blogged on KPI Approaches, advising alternatives to the gauge chart. I will not attempt to retread either of these paths here, rather suggest the simplest tool for presenting data in QlikView – the humble Text Box.
As I mentioned in my post about caption bars anywhere you see an ellipses (…) in QlikView you can insert an expression. This is true of a text box. We can therefore make text boxes a more efficient representation of data.
Take my offending gauge:
This can be adequately be replaced by the following text boxes:
The eagle eyed among you have probably noticed that I needed to put two text boxes in here, as you can not change size, font or style in a single text box. The background and title are one text box (with alignment top and 6pt text margin) and the percentage is a transparent text box on top. The expression in our percentage text box is simply: =num(1 – vNice, ‘#,##0.0%’) – the bulk of the calculation being in a variable, and the num function doing the formatting of the number to be a percentage to 1 dp.
We can encode further information into the text box by changing the colour of the background based on the value, mimicking the segment of the gauge the needle falls into:
This colour can be achieved by setting a calculated colour on the text box with the legend [1]. The code for which is:
=if(vNice > 0.6, $(vGreen), if(vNice > 0.2, $(vOrange), $(vRed)))
Note the use of variables for storing defaults for colours as well as the expressions – this makes code re-use much easier. I will have to do a future post on the use of variables.
To make the text box even more useful it (or in this case, they) should also have actions attached that allow the user to drill into the detail about that number or fact. Perhaps in this case a breakdown of which countries have the highest percentage of naughty children. This could be achieved by changing the tab that the user was on or using a show / hide variable on a chart object (see my post on Buttons for more information on this).
I used this approach to, I believe, good effect when asked to produce a wall board display of QlikView system status for a customer (who has kindly allowed me to reproduce the dashboard here). Feeds are brought in from different apps, including CAL usage, the file system and QlikView Distribution logs and aggregated onto a single screen. The app also fires alert emails when error conditions are encountered:
Most of the objects on this page are text boxes, the exception being a simple table in the top right which has it’s borders and captions removed. The three main numbers select that type of issue and then go to a tab giving the breakdown of those items. There are also links to other QlikView apps that contain more information that could be useful in resolving issues. There are also show conditions on the table and the links, so these don’t display on the wall board machine making it fit on the low-resolution panel on the wall and removing links that can not actually be clicked.
To get back to to the point of this article, think carefully about what object you use to convey information. Often the most simple approach is the one that will be the most effective. Keep things simple and your QlikView documents will be all the better for it.
[1] I should also point out that Barry Harmsen mentioned that the level of naughtiness in my dashboard was far too high to still be in the amber segment and I should perhaps be less tolerant of such behaviour. All I was doing was trying to create an amusing card!
great post, Steve! And I really like the dashboard and layered textboxes on the screenshot.
Thanks Borys. Text boxes allow a great deal of control over look and feel and I use them often.
One of the things that gauges give that text boxes don’t is a sense of context. I can see a number, I can see a colour, but I can’t see where that number sits in relation to the set of possible values.
The text boxes do look good – how about a small linear chart on the bottom of each one, providing the visual context?
Stephen
Hi Stephen,
I have seen that done to very good effect before now. The reason I do not often do this is the outside of the chart would be transparent and not end where you expect it to. You then have to be very careful with layering – especially if you are using actions. It can be less than obvious to someone else picking up your app if techniques like that have been used (invariably my work gets handed over to someone else to maintain). Those mini-bars do look really good though.
Hi Steve,
Interesting article.
But why not use the Caption option to format the title separate from the text object body?
These can already be formatted independently and limit the number of text boxes on screen.
Nice dashboard at the end.
Thanks Erwin. With using the caption to show the title it is a bit simpler to implement, as you say it is only one text box. The downside is that if you have an Action on the text box clicking the caption does not invoke that action. On the flip side, it does make it easier to move your text boxes around if you have a caption (though the Alt key also does this).
Actually you can create the “Percent Naughty” box with one text box. Just put the header in the caption and percentage in the text. Of course you have to make the caption visible and the same color as the background. You can’t get exactly the 6 pt margin, but if you make the caption 2 lines high you get pretty close.
Hi NL. You are correct – using the caption is a viable and slightly simpler way of achieving that look of text box. You get a touch more control using text boxes without captions though. I have sometimes used captions on text boxes, leaving them in the same style as the captions on charts etc., simply for consistency.
Does your QVW that summerizes the CAL Manager & Management Console exist somewhere for download?
& Ops Monitor too. Forgot that one. I like the consoldated summary a lot.
Hi Brian, the dashboard is something that I tend to customise and roll out to my consultancy clients, as much to make my life easier as anything. There is no documentation on how to set up the feeds and configure it. As such it is unfortunately not available for download. Please contact me directly if you wish to explore implementing it in your own environment.
Excellent way to simplify! As Stephen has mentioned, I wonder if adding a mini bullet chart with qualitative scale can provide needed context.
Hi Shilpan, in most cases I am designing documents with very tight time constraints – the text box alone approach is quick and easy to implement. What would be great is if you could set a variable for text box width – then ad-hoc bar and bullet charts could be created without so much faffing with transparency and sizing of chart objects that are not designed for being mini-charts. Sadly this can only be done with macros and are therefore not really a sensible option.
Thanks of a good article. I always try to steer clear of text boxes simply because managing 50 text boxes on a tab can become a bit over whelming and fiddly. Do you have any tips or suggestions on how you minimise this issue.
I realise there is the basic ‘allign left’, ‘allign right’, ‘distribute evenly’ etc. but without being able to group objects I find this a bit painful.
Hi Daniel, there is also a performance issue if you have too many text boxes on a page. I do have one app though where there are ninety odd text boxes, and management of that is as you say ‘a bit painful’. What I would say is make sure you disable moving of text boxes once you have them in the right place. Also, use the Design Grid to see where transparent text boxes end, and Ctrl+Shift+S to show and hide any hidden text boxes.
Thanks for your suggestions. The Show and hide hidden objects is a new one to me and will be very useful.
Steve, Nice job. I think Qlik should hire you to design their system monitor apps. I wasn’t happy that the last one came with a black background, buttons and hidden objects everywhere…
Thanks Karl – very much appreciated as it comes from the guy who wrote the book on QlikView Data Visualisation. I tend to still use the Version 9 Ops Monitor that QlikTech provided – subsequent offerings have confused me. Even then I’ve had to hack it about a bit over time. This was created for a wall board – so had to look just right.
[…] Keep QlikView Simple via QuickIntelligence […]
Hi Steve
re the two text boxes to allow different fonts in one box. Utilising the text box caption will give this functionality. The background of the caption can be set the same as the rest of the box to make it look seem less.
Hi Ron, thanks for your comment. The issue with the caption bar is that any actions you place on the text box do not kick in when you click on the caption. If you don’t have any action on the text box this is fine (and I have used captions in this way) but where there are actions I find two different text boxes with the same actions on each works best.