In this document I will show you how we can plot data to display a Gartner Magic Quadrant chart.

Gartner Magic Quadrant is used by Gartner to do company analysis on a given subject (big data, BI, cloud, data services, etc.).

But we can use this chart to propose new business cases.

Before detailing the solution described in this document, here is a Gartner Magic Quadrant chart I picked on internet.

The chart choice is the Scatter Plot and that’s not the biggest challenge.

To represent the data on this chart we only need 2 measures: ability to execute and completeness of vision.

Now the difficulty is to split the chart in 4 equal parts for Challengers, Leaders, Niche Players and Visionaries.

As we only have one title in a chart it seems difficult to display each category.

Moreover, it’s also not possible to have only 1 line for the X axis and 1 line for the Y axis representing the zero or the average.

I tried to do it using a single chart and here is the best chart I obtained.

As you can notice there is no title for the categories and it’s not so easy to identify them in the chart.

The last issue is that the minimum value and maximum value can be defined for the entire chart but not for the zero/middle axis. So I we want to simulate or change the average, this is not possible.

## The best solution: 4 charts

So I decided to use 4 charts, 1 for each category.

All the charts are aligned each other:

• LEADERS is aligned on the right of CHALLENGERS
• NICHE PLAYERS is aligned on the bottom of CHALLENGERS
• VISIONARIES is aligned on the left of NICHE PLAYERS and is aligned on the bottom of LEADERS

The dataset I used contains:

• a dimension named Company
• a measure name Ability to Execute
• a measure named Completeness of Vision

The 2 measures contain decimal data between -1 and 1.

So each chart contains the dimension “Company” and the 2 measures as following:

I set the minimum value and maximum value for each chart:

• CHALLENGERS:
• Value Axis: Min = -1, Max = 0
• Value Axis 2: Min = 0, Max = 1
• Value Axis: Min = 0, Max = 1
• Value Axis 2: Min = 0, Max = 1
• VISIONARIES:
• Value Axis: Min = 0, Max = 1
• Value Axis 2: Min = -1, Max = 0
• NICHE PLAYERS:
• Value Axis: Min = -1, Max = 0
• Value Axis 2: Min = -1, Max = 0

Then I created a filter for each chart:

• CHALLENGERS:
• Completeness of Vision Less than 0
• Ability to Execute Greater than or Equal to
• Completeness of Vision Greater than or Equal to
• Ability to Execute Greater than or Equal to
• VISIONARIES:
• Completeness of Vision Greater than or Equal to
• Ability to Execute Less than 0
• NICHE PLAYERS:
• Completeness of Vision Less than 0
• Ability to Execute Less than 0

Common properties:

• Each chart has the same width and same height
• Each chart has a title corresponding to each category.
• The Legend is hidden
• Data values
• Data type = Label
• Data position = Outside First, Inside Otherwise
• Same font size for Data Values
• Chart border:
• CHALLENGERS: Top, Left
• VISIONARIES: Bottom, Right
• NICHE PLAYERS: Bottom, Left
• Category Axis:
• Design is hidden
• Title is hidden
• Value Axis:
• Design is hidden
• Title is hidden
• Value Axis 2:
• Design is hidden
• Title is hidden

Here is the result obtained with the 4 Scatter Plot charts:

You can tweak the layout depending on the maximum number of values for a given part of the SWO matrix: increase or decrease the font size, increase or decrease the width and height.

## What-if

Now we can easily simulate the moving of data from one quadrant to another by changing the middle value if each axis.

To achieve this requirement, I created a measure variable for Ability to Execute and a measure variable for Completeness of Vision

Then I created an input control associated to each variable.

Each input control has a value varying from -10 to 10 with a default value equal to 0.

Now to simulate the variation I modified the minimum value and maximum value of each chart as below.

• CHALLENGERS:
• Value Axis: Min = -1, Max = =[Variables].[Completeness of vision] / 10
• Value Axis 2: Min = =[Variables].[Completeness of vision] / 10, Max = 1
• Value Axis: Min = =[Variables].[Completeness of vision] / 10, Max = 1
• Value Axis 2: Min = =[Variables].[Completeness of vision] / 10, Max = 1
• VISIONARIES:
• Value Axis: Min = =[Variables].[Completeness of vision] / 10, Max = 1
• Value Axis 2: Min = -1, Max = =[Variables].[Completeness of vision] / 10
• NICHE PLAYERS:
• Value Axis: Min = -1, Max = =[Variables].[Completeness of vision] / 10
• Value Axis 2: Min = -1, Max = =[Variables].[Completeness of vision] / 10

Now because the minimum value and maximum value are changing I created a new variable named “Quadrant” with the following formula:

=If [Query 1].[Ability to execute] >= [Variables].[Ability to execute] / 10 And [Query 1].[Completeness of vision] < [Variables].[Completeness of vision] / 10 Then “CHALLENGER”

Else If [Query 1].[Ability to execute] >= [Variables].[Ability to execute] / 10 And [Query 1].[Completeness of vision] >= [Variables].[Completeness of vision] / 10 Then “LEADER”

Else If [Query 1].[Ability to execute] < [Variables].[Ability to execute] / 10 And [Query 1].[Completeness of vision] < [Variables].[Completeness of vision] / 10 Then “NICHE PLAYER”

Else If [Query 1].[Ability to execute] < [Variables].[Ability to execute] / 10 And [Query 1].[Completeness of vision] >= [Variables].[Completeness of vision] / 10 Then “VISIONARY”

The I removed the previous filters and created a new filter for each chart:

• CHALLENGERS:
• VISIONARIES:
• NICHE PLAYERS:
• Quadrant Equal to NICHE PLAYER

And now I can change the middle value to simulate updates in the Gartner Magic Quadrant.

You can use this solution for other business cases than company analysis.

You can download the Web Intelligence report attached to that publication that details all the steps described in that document.

Didier MAZOUE