Download Set Analysis Primer


Lollipop Chart

Stephen Few is undoubtedly an expert in the field of data visualization.

He has an uncanny ability to articulate his viewpoints on how to use charts to tell a compelling data story.

Obviously, he is not a fan of dessert or candy charts, such as pies or donuts.

In this article, he has eloquently argued against another pretty candy chart — Lollipop chart.

Lollipop chart may not fit the bill for the visualization best practices, but it’s hard to argue against its aesthetic appeal!

QlikView Lollipop Chart

I thought of creating a Lollipop chart in QlikView not so much to show a pretty graph, but rather to show the power of AGGR function along with an obscure yet useful function: GetObjectField.

Sales: 2019 vs. 2018

What is the Lollipop Chart?

Lollipop is another form of a bar chart. The only difference is that it has a dot at the end of the line. It is useful when you have bars of similar length, since, visually, these bars clutter space and are hard to read.

A diverging lollipop tells a compelling data story for comparative analysis, as depicted above.

How-to Guide: Diverging Lollipop Chart

Let’s start with a combo chart in QlikView.

To create maximum and minimum sales vertical lines, I have used AGGR() function with a TOTAL qualifier.

AGGR() is a powerful aggregation function.

Imagine a two-step process when you use AGGR() function.

Step 1: Aggr() creates a virtual cube in the memory. This cube has a list of dimensions and measures akin to a virtual table.

Step 2: The virtual table allows you to perform additional aggregation such a maximum sales value or a minimum sales value.

TOTAL qualifier comes handy when you want to disregard the chart dimensions. Since we need max and min sales values from a list of products or customers, we can use TOTAL qualifier along with the AGGR() expression.

Here’s the kicker.

If you want to use a cyclic group as a dimension, you can use getObjectField function with a dollar-sign expansion.

max(total aggr($(vSales), $(=GetObjectField(0,’CH02′))))

Here, vSales is a variable that stroes expression

sum({“$(=max(Year))”}UnitPrice * Quantity)-sum({“$(=max(Year)-1)”}UnitPrice * Quantity)

I am using this variable to show both the line and the bubble of the Lollipop chart.

The last step is to sort the chart by Y-axis value in the descending order.

That’s, in a nutshell, the high-level process to create a diverging Lollipop chart in QlikView!



Become a Pro Member

If you enjoyed this article, get email updates (it’s free).

* indicates required
About the author

Leave a Reply