Replacing the legend in a line chart with labels on each line
One of the problems with a standard QlikView line chart is that the legend is somewhat removed from the chart, and it can be difficult to keep going back and forth between the legend and the data to work out which line is which.
A way of resolving this is to remove the legend and replace it with labels on each line.
Getting ready
Load the following script:
CrossTable(Country, Sales) LOAD * INLINE [ Date, USA, UK, Japan, Germany 2013-01-01, 123, 100, 80, 40 2013-02-01, 134, 111, 75, 50 2013-03-01, 155, 95, 70, 60 2013-04-01, 165, 85, 88, 50 2013-05-01, 154, 125, 90, 70 2013-06-01, 133, 110, 75, 99 ];
How to do it…
These steps will create a line chart with labels on each line instead of a legend:
- Add a new line chart. Add two dimensions,
Date
andCountry
. - Add the following expression:
Dual( If(Date=Max(total Date), Country, ''), Sum(Sales) )
- On the Expressions tab, ensure that the Values on Data Points option is checked.
- Click on Next until you get to the Presentation tab. Deselect the Show Legend option.
- Click on Finish on the wizard.
How it works…
The Dual
function will only return a text value when the date matches the maximum date. Otherwise, it is blank. So, when we enable the Values on Data Points option, it only displays a value for the last data point.
It is critical that you don't set a number format for the expression. The Expression Default option means that it will use the text from the dual.
There's more…
Dual is a really useful function to allow us to define exactly what will be displayed on labels such as this. It is also really useful for sorting text values in a specific order.
See also
- The Staggering labels in a pie chart recipe