How to use Synoptic Panel

You have been waiting for months, and now it is out! Here is the new version of our popular custom visual for Power BI, Synoptic Panel by OKViz.

What’s new in Synoptic Panel?

[UPDATE 28-03-2017]
You can see the updated changes here: Synoptic Panel Change Log
[UPDATE 21-12-2016]
You can see the v1.4.0 changes here: Synoptic Panel v.1.4.0 Changes

What is Synoptic Panel?

Just for people who never used our component before, here is a brief presentation.

Synoptic Panel is a custom visual for Power BI that allows you to present one or more images (called maps, not necessarily geographical maps), assigning a meaning to arbitrary parts of them (called areas). You can highlight and color these areas dynamically and display several information over them.

Think about the case: you have a map of an airplane and you want to see which are the bestselling seats. Yes, you can do it with a standard Bar Chart, but how could you check the spatial correlation between each seat? Or how could you explain the fact that the seats near windows are the most wanted?

And what about a stadium?

Synoptic Panel is the tool for this kind of analysis and presentations.

Which images can you use with Synoptic Panel?

Not all of the images are supported, and the ones that can be used must be prepared in some way.  Synoptic Panel accepts and displays SVG files only, but you can use bitmap images (such as a PNG or JPG files) too, by transforming them with a special tool called Synoptic Designer.

Let’s see how to proceed.

Preparing maps

Before using maps in Synoptic Panel, you must define the areas to highlight and assign a unique name to each of them. Those names must correspond to existing values of the columns that you want to connect to the areas.

Look at this example:

This is a simple map of a store. The white rectangles represent sections with products of different categories, such as the following:

Category Subcategory Sales Amount
Audio Bluetooth Headphones $12,165
Home Theater System $262,456
MP4&MP3 $22,546
Recording Pen $13,457
 

To make this map working with Synoptic Panel, you must name each of the rectangles with the same name of its belonging category. If you do it correctly, you obtain a result like this:

How can you name the areas? Here are the two possible paths:

  • Your map come as a bitmap image: you have to use Synoptic Designer.
  • Your map come as a vector image (SVG): you can use Synoptic Designer or a third-party graphical editor that supports SVG files (this is the recommended approach, because it is more flexible and powerful).

Preparing a bitmap image map (PNG or JPG)

Bitmaps are static one-piece images. To split them in different areas you have to convert them with Synoptic Designer, a web application that runs within any modern browser (IE 10+, Edge, Chrome, Firefox and Safari).

Here are the simple steps to follow:

  1. Go to https://synoptic.design.
  2. Drag your PNG/JPG file inside the Synoptic Designer canvas (or press the Browse button and search for a local image).

    In the following example, we selected the map of a store.
  3. Select a tool from the bottom toolbox and start drawing shapes over the image.

    If your image is not too complex, you can use a special tool called Magic Wand to automatically determine closed areas.

    In the following case, we used Magic Wand to quickly trace all the sections of our store.
  4. Select each shape and assign it a name in the right panel. As said before, every name must correspond to an existing value of the column in the data model.
    In the following case, we assigned a product category name to each rectangle, because it is the zone of the store dedicated to sell products of that category.
  5. Once you complete the definition of the areas, export your work by clicking Export to Power BI button and download the generated SVG file.

Share your map in the Community Gallery (optional)

If you think that your maps are useful for other people, you can consider to publish them to our Community Gallery (reachable from Synoptic Designer website and directly from the Synoptic Panel component). To do it, just press the Submit to Gallery button in the Synoptic Designer editor.

Please, note that all the submissions must be approved before publishing, so follow these guidelines strictly:

  • Don’t submit test, private or images not useful for the community (such as the map of your home).
  • Don’t submit images of which you have no rights.
  • Use English language in submission description.
  • Provide high resolution bitmaps or SVG files (better).
  • Submit images with grayscale colors and without overlay text, because they can conflict with the colors and the text injected by Synoptic Panel.

Preparing a vector image map (SVG)

SVG files are vector images, structurally similar to XML documents. In these files, each shape is separated from the others, so it is simpler to bind it to a data model.

One of the most popular solution to edit SVG files is Inkscape, a multiplatform graphic editor that you can download for FREE from here.

To use Inkscape, follow these steps:

  1. Open Inkscape, then press File\Open and choose your existing SVG map.
    In our case, we selected a vector variant of the same map from the previous section.
  2. After the file is loaded, select each shape that you want to bind and change its ID from the Object Properties on the right (if you can’t see the panel, just right-click on any shape and select Object Properties from the context menu).
    In the following case, we assigned a product category to each shape, like before.

    Please, note that there is a discrepancy in the naming convention between Inkscape, Synoptic Designer, and other graphic editors such as Adobe Illustrator.
    Inkscape doesn’t adhere to any standard, and it strips all the characters that are not letters, numbers, :(colon), -(dash) (space). Thus, if you use characters outside that range in your area name, they will be replaced with an _(underscore). Synoptic Designer and Adobe Illustrator, instead, transform special characters in their hexadecimal counterpart in a transparent way, so you should able to use them without noticing anything.
  3. Save your file and close.

Importing Synoptic Panel visual in Power BI

Before using Synoptic Panel with your map, you must import it in Power BI.

First, you download Synoptic Panel from http://okviz.com/synoptic-panel, then you import the component by using the three-dot button in the tools panel. You will see a dialog box where you choose the .PBIVIZ file that you downloaded before.

Once imported, you can drag the component into the main canvas area, and then you start working with it.
The first thing to do is to bind your data with the following fields:

  • Category (formerly Legend) and Subcategory (formerly Details): bind to columns of your data. They must contain the same names that you assigned to your map areas in the previous steps. You are required to define at least one of them.
  • Value: bind to the main measure that represents the value of the areas.
  • Target: bind to a measure that contains a target value for performance comparison.
  • States: bind to multiple numerical measures that represent performance states.
  • Tooltips: bind to multiple numerical measures to show additional information on mouse hover.

Loading maps in Synoptic Panel

After binding data, you have to load your map in the component.

Loading local maps

If you have just static files, you can press the Local maps button from the Synoptic Panel toolbar, and choose one or more SVG images from your local computer.

The selected images are embedded in your report, and you can change the map on screen with a dropdown list.

Loading maps from the public gallery

If you want to display a map from our Community Gallery, you can do it by pressing Gallery button from the toolbar, and choosing one of the images hosted on our servers.

Please, note that any selected image will be not embedded in the report, so you have to be connected to the Internet to load it correctly.

Loading remote maps

If you want to display multiple (dynamic) maps, you can bind a measure returning remote URLs to the Maps field.

Name MapFile
Europe https://synoptic.design/gallery/europe.svg
Italy https://synoptic.design/gallery/italy.svg
USA https://synoptic.design/gallery/usa.svg
World https://synoptic.design/gallery/world.svg

Please, note that the URLs must be public, under HTTPS, on a CORS-enabled server, and you have to be connected to Internet to display it, otherwise you will see the following error message.

[UPDATE 08-05-2017]
You can use GitHub as free hosting for your images. Read more here: Hosting Synoptic Panel maps on GitHub

After binding the measure, a dropdown list will appear inside the component. Each element of this list is linked to a map, so changing the selection will change the image on screen.

If you need it, you can make the dropdown list acting as a filter of the entire report. To do it, just select the Filter on map change option under Toolbar in the visual property panel.

Embed maps in your report (new)

Another way to display multiple maps is to embed their content inside a measure.

Here are the steps to follow:

  1. Create a column with the local path of your files, like the following one.
    Name Filename
    Europe K:\dev\maps\europe.svg
    Italy K:\dev\maps\italy.svg
    USA K:\dev\maps\usa.svg
    World K:\dev\maps\world.svg
  2. In Power BI Desktop, go to Query Editor and add new calculated column from Add Column\Custom Column.
  3. In the Custom Column dialog box write this Power Query formula (replacing [Filename] with the column that contains the path of your images):
    = File.Contents ( [Filename] )

  4. After creating the column, change its Data Type to Text.
  5. Bind the new column to the Maps field of Synoptic Panel, as done in the previous section.

Please, note that every image is limited to 32KB (larger images will be truncated without any advice). If you need more space, you can compress the files using the standard Windows Compression Utility and embed the content of the ZIP, instead. Remember that each ZIP must contain only one image and it is similarly limited to 32KB.

Unfortunately, the above limitation doesn’t depend on us, but it is a core constraint of Power BI itself. We hope it will change in the future.

Presenting maps with Synoptic Panel

At this point, you should see some parts of your map with a teal color. This means that the component found a match between the data and the areas you defined.

Of course, this is a default appearance, you can change nearly every aspect of it.
Let’s see some of the options to play with.

Areas manipulation

Despite the original map came as static bitmap or a vector image, you can manipulate its areas in several ways:

  • You can change easily the colors of the areas that have no match in your data model (Data Colors\Unmatched color).
  • You can even hide the unmatched areas (General\Unmatched areas), but this option works as expected only if you started from a vector map, because Synoptic Panel is not able to hide a part of a bitmap image.
    In the case of our store, in fact, we started from a bitmap image, so hiding the unmatched areas will only uncover the below map.

    Applying this option to a real vector image produces a better result.
  • You can change the colors of all the matched areas or you can assign different colors to each one, by selecting the Show all option.
    Please, note that the latter option has different behaviors based on the measures that you bind to the component.

    • If you fill only one between Category and Subcategory fields, by default the component assigns different colors to each area, based on the bound field.

    • If you fill both Category and Subcategory fields, by default the component assigns standard colors to each area, based on the bound Category. You are free to change every color:

      • If you set Data Colors\Use category colors, you can change the color of each category.
      • Otherwise, you can change the colors of subcategories.

Data labels

You can show labels over your maps along with one the following information (you can choose it from the Data labels property panel).

  • Data column: show the matched data name among Category and Subcategory fields.
  • Data value: show the data point value (or the corresponding value when a filter is applied to the report). It can be custom formatted – see the other options in the same section.
  • Area name: the name defined inside the SVG file. If the areas are not matched, this value will be always used by default.
  • Column and value: mix Data column and Data value in the same label.
  • Area and value: mix Area name and Data value in the same label.


Moreover, to support many different maps and layout, you can change the labels position (as discussed before), enclose them in the areas boundaries, and word wrap the text.

Performance states

The core of Synoptic Panel is the ability to color each area by its performance.

In the last update, we changed how this feature works, so read carefully the following post to get out the best from it: http://okviz.com/blog/states-in-custom-visuals.

After setting correctly performance states, you will obtain results like this:

In addition to “solid” states, you can choose to change the saturation of the areas’ colors. If you select the Saturate option from the States panel, each area will be saturated based on the comparison between its performance and the performance of the other areas on the same map.

In conclusion

Synoptic Panel is one of the most popular custom visual for Power BI, and it is available for FREE from http://okviz.com/synoptic-panel/. It comes with a powerful editor, Synoptic Designer, and a community gallery containing many useful maps.

Because of its versatility, we noted that people use Synoptic Panel in many unexpected scenarios. In order to show its potential to everyone, we planned to report the most interesting uses in an upcoming section of our website. If you want to be part of these cases and share your solution with the community, please contact us at support@okviz.com.

If you have any idea to improve the component, please leave a track in the comments below.