Archive | Design RSS for this section

Have a slice

Even if they are not recommended, pie charts are widely used. We might come across a client or user that will not accept alternative visualizations forcing us to use them.

When this is the case, we need to make sure to make pie charts as clear and easy to use and understand as possible. There are some tips and tricks to take into account when using pie charts.

Number of slices

Read More…


Straight Table Pagination

Straight tables are one of the most commonly used objects in Qlik. I would say there are no reports without tables. Even if we try to avoid them, they are always there.

Tables don’t usually present a problem in our reports. However, when we work with big amount of data, tables don’t perform well and we need to start applying filters to make them smaller. No matter how big and dirty tables can get, users still want all of the detailed data in a table. No filters, no shortcuts. All of it.

This presents a big problem from Read More…

Set Analysis Vs. IF()

I still see many people using IF() statements inside expressions.
I have decided to make a simple test with unique values going from 1,000 to 10,000,000 records.
I have created two streight tables. One using IF() and the other one using Set Analysis.

In the first table I used this expression: sum(if(Sales >=10, Sales))
The second table had this other expression: sum({< Sales = {“>=10”} >} Sales)

I then took notes of the calculation time and the memory used. See the charts below showing the results.

Calculation Time

Calculation Time

Read More…

Attribute expression types

Today I’d like talk about attribute types in expressions.
As you might now, expressions can be used pretty much in any object in Qlikview but not all of them support attributes.

Attribute expressions allow us to dynamically format expression data.

If we want to work with attribute expressions, we need to create a chart (e.g bar chart). We then go to the Expression tab, create an expression and click on the + symbol next to it.


Picture 1 – Attribute Expression

We will find 7 different attribute expressions:

  • Background Color: defines an attribute expression for calculating the basic plot color of the data point. The expression used should return a valid color representation.
  • Text color: calculates the text color of text associated with the data point.
  • Text Format: calculates the font style for text associated with the data point. The expression used as text format expression should return a string containing a ‘<B>’ for bold text, ‘<I>’ for italic and ‘<U>’ for underlined text.
  • Pie Popout: only for pie charts. Calculates whether the pie slice associated with the data point should be drawn in an extracted popout position.
  • Bar Offset: only for bar charts. Calculates an offset for the bar or bar segment accordingly.
  • Line Style: only for combo and radar charts. Calculates the line style for the line or line segment associated with the data point. The relative width of the line can be control by including a tab ‘<Wn>’ where n is a multiplying factor to be applied on the default line width of the chart. The number n must be between 0.5 and 8. The style of the line can be controlled by including a tab ‘<Sn>’ where n is an integer between 1 and 4 indicating the style to be used (1 = Continuous, 2 = dashed, 3 = dotted, 4 = dashed/dotted).
  • Show Value: only for bar, line and combo charts. Calculatesif the data point plot should be complemented with a number on data point value.

Here are some practical examples:

Background Color

Picture 2 – Background Color

Bar Offset

Picture 3 – Bar Offset

Pie Popout

Picture 4 – Pie Popout

Line Style

Picture 5 – Line Style

Text Format

Picture 6 – Text Format



Chord diagram extension object.

Chord diagram extension object

We all love Qlikview but we know that it doesn’t provide a great selection of charts.

This is why we might need to create extension objects.

We were asked to make a very specific analysis for a client and none of the charts in Qlikview were suitable for this situation. That’s why we made some research in D3 and found the Chord chart that perfectly fitted our purpose.

We needed to analyse mobile phone users and browsers used on desktop. This is, What browser in desktop do iPhone, Samsung, etc users use? We were not very interested in the number of people but we wanted to provide the client with an easy way of visualizing this data and quickly understand the volume or ratio.

Basically, a chord diagram arranges its nodes radially, drawing thick curves between nodes. The thickness of the curve encodes the frequency of rides between two neighborhoods.

This is what a chord chart looks like: Read More…

Analyzing metrics in one chart

A couple of weeks ago, I was asked to create two charts. One that could show the Sales made in each of the websites where they sell their products, and one showing the average shipping cost.

Until that moment, they were visualizing these values in a plane table. I was told that I could create whatever I thought it was the best solution. Here’s my approach.

I first created a bar chart to represent Sales by Site. I got something like this:

The problem here is that the numbers in the Y axes were too big and not formatted, so I couldn’t say I was actually analyzing a metric represented by money without looking at the chart title.

After formatting a bit the chart, I decided I would add the average shipping cost in the same chart so they avoid looking at two different places. This will also help them optimize web sites where sales and shipping cost are not performing as expected.

At this point I had something like this:

Now you can clearly notice that your blue bars represent Sales which are expressed in dollars, and whatever number you see should be multiplied by 1000 (k).

You can also quickly realize that the left axes belongs to your Sales as it’s in blue, and your right axes represents the avg shipping cost as it’s in red as the dots.

Analyzing the chart in more detail, I realized that when fixing your eyes to the Sites in the middle, you must go back and forth between the left axes and Site name, otherwise you can’t tell how they are performing.

My next improvement would contain the values on the data points. I looked like this:

A lot better. I can now easily identify my KPIs, the scale, how the numbers are formatted, what they represent and now there’s no need for me to move my eyes when I’m looking at the bars as I have the Sales value right there.

But, the problem comes when I have many values on my X axes as those numbers become unreadable.

Why not formatting also those numbers on top of the bars?

This can be achieved by creating an expression that contains the formatted values. When working on this expression, only leave “Values on Data Points” checked. This will make Qlikview won’t represent this as an object (no bar, line or dots) but only as text.


The expression I used in this case was:

IF(sum(Sales)>=1000 AND sum(Sales)<1000000, money(sum(Sales)/1000,’$#,##0(k)’),
IF(sum(Sales)>=1000000, money(sum(Sales)/1000000,’$#,##0(m)’), money(Sum(Sales),’$#,##0′))

As you can see, I format the values that are greater than $1,000 to show as $1(k), and those greater than one million to show as $1(m).

Here’s the final version:



Users were able to analyze two different KPIs using one chart. They can also quickly decide what Site is performing well or bad in seconds. The different colors and shapes (Bars and dots) allow them to have a clear idea of what’s Sales and what’s average shipping cost.  By coloring the axes with the same color as the KPI, they can identify which one represents Sales and which one represents average shipping cost.

*Note: this is an example that uses sample data generated for this post.