Power View can be a good tool for interactive data visualization and data discovery, but it has a few limitations with its mapping capabilities.
- Power View only visualizes data on maps using bubbles/pies.
- The size of the bubble on a Power View map can be misleading during analysis for data sets with small values and negative values.
- By default, Power View can only display one measure on a map, which it uses to determine the size of the bubble.
Microsoft offers other mapping capabilities in Power Map and SSRS maps, so if all you need is a map, you can explore those other tools to determine if they better meet your needs. Check out my presentation on Choosing Your Geospatial Mapping Tool for more info on requirements, capabilities, and limitations of maps in Power View, Power Maps, and SSRS. If you want to see a map in the context of other charts, and you want the interactive highlighting and filtering of Power View, you may look for workarounds to the second and third issues listed above.
I recently had a client express disappointment about the display of negative values in Power View maps. A negative value simply gets a small bubble, and positive value gets a larger bubble. You have to hover over the bubbles to see each value and understand the bubble size that represents the change in sign from positive to negative. This gets a little tedious and minimizes the usefulness of the bubble map in the first place. The example Power View map below shows the year over year change in trespassing incidents in my city from 2013 to 2014. The small bubble has a value of -16, and the large bubble to the right has a value of 6.
One way to better present this type of data in a Power View map is to have positive values represented in one color and negative values represented in another with the bubble sizes showing the absolute value of the change. This proved to be less than straight forward as I worked my way through it. You can’t just make separate measures for the positive and negative values because Power View won’t let you put two measures on a map in that manner. You can’t simply create a calculated measure that determines the sign of your values and put it in the legend because Power View is expecting categorical data for the legend and it won’t let you put the numerical data field in the legend. Power View also doesn’t recognize calculated measures that return a text value (they don’t show up in the field list), so you can’t create a measure that turns the sign into a text value (“Positive” or “Negative”) in an effort to make it more categorical.
But you can use dynamic segmentation to show the second measure as a dimension. There is a great video on MSBI Academy that walks you through this. Although the video shows two different measures on a map, you can use this method to color code positive and negative values of a single measure. First, create a disconnected table for the number sign attributes. It should contain at least:
- a text field with a descriptor
- a field for the minimum value of the range
- a field for the maximum value of the range.
The video shows storing that table in Excel (which is great if you plan to make changes), but you can now also paste the table directly into Power Pivot without any link to the table in Excel. My final table looks like the image below.
Next you need a calculation that uses the disconnected table and displays the absolute value of the measure you want to use for the bubble size.
Change In Incidents YOY Pos/Neg:= if(CALCULATE(Countrows('Sign'), FILTER('Sign',[Change in Incidents YOY] >= Sign[Min] && [Change in Incidents YOY] < Sign[Max]) ), abs([Change in Incidents YOY]) )
Then you can build your map. Use the Pos/Neg field for color, the new calculation for size, and your location fields of choice.
Note that you will now see a warning message in the Power View fields list that relationships may be needed. You can disregard that. The use of a disconnected table is the cause of that message, and everything is working as intended.
If your map has no drill down levels, you can stop here. Your map will now have the values for positive and negative in the legend with bubbles of two colors on the map. A bubble whose signed value is 5 will be the same size as a bubble whose signed value is -5 with the color indicating the sign of the number. In this analysis, a positive number indicates an increase in trespassing, so I chose a theme and ordered my values in the sign table such that the positive values were assigned the brighter color. These are the bubbles that need attention since trespassing is rising in the related zip codes.
If you do have drill down levels in your map, you have a couple more steps. You need another measure that deals with the drill down path. Without this extra step you end up with pies and unexpected values.
My map allows the user to drill down from zip code to beat. My new calculation references the top level of my drill down path ([Zip Code]), the calculation I just created ([Change In Incidents YOY Pos/Neg]), and the second level of the drill down path in my map ([Beat]). Note that this calculation is specific to the drill down path used in the map. If you have several maps with different drill down paths, you will need to create several calculations for this to work.
Change In Incidents YOY Pt 2:= IF(COUNTROWS(ALLSELECTED('KCPD Crime Data 2014'[Zip Code]))=1, [Change In Incidents YOY Pos/Neg], CALCULATE([Change In Incidents YOY Pos/Neg], ALLSELECTED('KCPD Crime Data 2014'[Beat])) )
Now I can put this new measure in place of the original one, and the pies will go away, returning the expected color coded bubbles and values.