You’ll notice one of our exciting updates right away when creating new reports with the September update of Power BI Desktop, a new, modern default theme! Not only do we have a new default theme, but we’ve more than doubled the number of built-in theme options for your report. If you’re a theme author, potentially more exciting are the updates to our theme JSON format which make it much quicker and easier for you to create your own custom themes that significantly change the look and feel of your report. Thanks to an intern project, we’re also releasing a frequently requested modeling feature: custom format strings. And of course, we have plenty of incremental improvements this month, with some performance improvements, more dynamic formatting options, updates to our personalized visualization pane, and more.
As a final reminder, starting this month, we are only releasing our new single .exe installer that has all the languages wrapped into it. If you’re automatically downloading it from the Download Center each month, you’ll need to update your scripts. You can learn more about how to do this in our documentation.
Here’s the complete list of September updates:
- Performance improvements for multi-dimensional models
- Query performance improvements for DirectQuery models
For a summary of the major updates, you can watch the following video:
Reporting
Color and text classes in themes
When writing your own custom theme JSON file, we know it can be quite difficult to build a theme that changes the entire look of your report. For example, if you wanted to create a dark theme that set the page to a dark color and use white text on top, you’d have to change a ton of settings through the visual styles section of the JSON, which can be very time consuming and error prone.
To help with this, we’ve expanded the color classes within our theme file to allow you format many of the colors in your theme without needing to touch visual styles. If you’re already writing theme files, you’re likely already using a few existing color classes: foreground, background, and tableAccent, which update various settings within your report with one line. With this update, we’re adding new color classes to that list, which as a result, means you can color all visual elements in a report just by setting 6 colors.
The color classes you now have available and what they format are:
-
foreground
- Labels background color (when outside data points)
- ย Filter pane and filter cards font & icon colors
- Trend line color
- Textbox default color
- Table and matrix values and totals font colors
- Data bars axis color
- Card data labels
- Gauge callout value color
- KPI goal color
- KPI text color
- Slicer item color (when in Focus mode)
- Slicer dropdown item font color
- Slicer numeric input font color
- Slicer header font color
- Scatter chart ratio line color
- Line chart forecast line color
- Map leader line color
-
foregroundNeutralSecondary
- Label colors
- Legend label color
- Axis label color
- Table and matrix header font color
- Gauge target and target leader line color
- KPI trend axis color
- Slicer slider color
- Slicer item font color
- Slicer outline color
- Line chart hover color
- Multi-row card title color
- Ribbon chart stroke color
- Shape map border color
- Button text font color
- Button icon line color
- Button outline color
-
foregroundNeutralTertiary
- Legend dimmed color
- Card category label color
- Multi-row card category labels color
- Mulit-row card bar color
- Funnel chart conversion rate stroke color
-
backgroundLight
- ย Filter card background color for applied filters
- Axis gridline color
- Table and matrix grid color
- Slicer header background color (when in Focus mode)
- Multi-row card outline color
- Shape fill color
- Gauge arc background color
-
backgroundNeutral
- Table and matrix grid outline color
- Shape map default color
- Ribbon chart ribbon fill color (when match series option is turned off)
-
background
- Labels background color (when inside data points)
- ย Filter pane and available filter card background color
- Slicer dropdown items background color
- Donut chart stroke color
- Treemap stroke color
- Combo chart background color
- Button fill color
-
TableAccent
- Overrides table and matrix grid outline color when present
In addition to color classes, we’ve added text classes to make it easier and quicker to set text styles. There are 4 primary text classes that adjust a total of 14 total text classes. You can set the font family, font size, and font color for each text classes. The four main text classes are: “Title”, “Label”, “Callout”, and “Header”.
The Title and Label classes have several secondary classes that are automatically derived from the primary class settings but can be formatted individually. For example, if you set the label class, which for example is used for the values in a table to 10pt, a “Small Label,” which is for example used the search box text in slicers, would be automatically set to 9pt. The goal of the primary/secondary text classes is to make it quick and easy for you to set the text classes, which still maintaining a visual hierarchy to the text.
The below table shows the primary classes with example settings and the secondary classes with the settings that make them unique compared to their associated primary class.
Primary class | Secondary classes | Class name in JSON | Settings | Associated visual objects |
Callout | N/A | callout | DIN
#252423 45pt |
Card data labels
KPI indicators |
Header | N/A | header | Segoe UI Semibold
#252423 12pt |
Key influencers headers |
Title | title | DIN
#252423 12pt |
Category axis title Value axis title Multi-row card title * Slicer header |
|
Large title | largeTitle | 14pt | Visual title | |
Label | label | Segoe UI
#252423 10pt |
Table and matrix column headers Matrix row headers Table and matrix grid Table and matrix values |
|
Semibold | semiboldLabel | Segoe UI Semibold | Key influencers profile text | |
Large | largeLabel | 12pt | Multi-row card data labels | |
Small | smallLabel | 9pt | Reference line labels * Slicer date range labels Slicer numeric input text style Slicer search box Key influencers influencer text |
|
Light | lightLabel | #605E5C | Legend text Button text Category Axis labels Funnel chart data labels Funnel chart conversion rate labels Gauge target Scatter chart category label Slicer items |
|
Bold | boldLabel | Segoe UI Bold | Matrix subtotals Matrix grand totals Table totals |
|
Large and Light | largeLightLabel | #605E5C
12pt |
Card category labels Gauge labels Multi-row card category labels |
|
Small and Light | smallLightLabel | #605E5C
9pt |
Data labels Value axis labels |
* The font color for these settings is based on the data colors, not the text class settings.
For example, here’s a small theme that sets some of these properties:
{ "name": "NewThemeOptions", "foreground": "#252423", "foregroundNeutralSecondary": "#605E5C", "foregroundNeutralTertiary": "#B3B0AD", "background": "#FFFFFF", "backgroundLight": "#F3F2F1", "backgroundNeutral": "#C8C6C4", "tableAccent": "#118DFF", "textClasses": { "callout": { "fontSize": 45, "fontFace": "DIN", "color": "#252423" }, "title": { "fontSize": 12, "fontFace": "DIN", "color": "#252423" }, "header": { "fontSize": 12, "fontFace": "Segoe UI Semibold", "color": "#252423" }, "label": { "fontSize": 10, "fontFace": "Segoe UI", "color": "#252423" } } }
You can still use visual styles to set any specific formatting you want, and that will override any color or text classes that have been set. We expect with these new changes for most users to stick to the color and text classes the majority of the time, and only use the visual styles for non-color/text options (such as turning titles on/off by default).
Watch the following video to learn more about color and text classes:
New default themes
To go along with the new theme JSON options, we are also updating the themes available for reports and changing the default theme for new reports.
Our design and research team spent quite a bit of time developing a new set of themes that have more variety (such as Innovate, a dark theme) and show off more theme-able feature (such as Bloom, with it’s background image).
The new default theme is meant to both align better with Microsoft’s design language and follow best design practices for visuals. We also tested it thoroughly to ensure it’s design is an improvement over other themes, with the goal that the new default makes it easier to create beautiful reports out of the box.
Some visual updates with the new default theme are:
- Larger, darker, more readable text
- Smaller bubble sizes for scatter and map visuals
- Wider line strokes for line and combo charts
- Updated layout for pie and donut charts to improve readability
- Expand/collapse on by default for matrices
- Backgrounds on for visuals by default
You can still find the previous themes under the “More themes” submenu any time you want to reach them. One thing to remember around custom themes is that they always build on top of the default theme. So for example, if you created your own custom theme that just set the data colors and nothing else, if you imported that theme into a report with the new default applied, it would still have expand/collapse on by default, backgrounds on for visuals, etc., so it may look different compared to when you imported it to a report with the old default theme. If you want your theme to look exactly the same way it did previously, you can first set the theme to “Classic” in the theme dropdown, so the default theme has the old settings and then import your custom theme.
Watch the following video to learn more about our new themes:
Personalized visualization pane improvements (preview)
Unpin default visuals
The first update to the personalized visualization pane this month is the ability to unpin any of the default visuals.
Once you unpin a built-in visual, it moves under the dotted line within the pane, and next time you open a report, it won’t show unless you have that visual type used already within the report, in which case, it will show below the dotted line. This means that the only difference in experience between built-in and custom visuals is that the built-in ones show by default initially.
Some reasons you might want to do this include:
- You never use specific visuals and want to declutter the pane
- You have strong feelings against specific visual types and don’t want to see it as an option
- You’re using a custom visual version of a visual type and don’t want to be mistakenly click on the built-in version you never use.
If you later want the default visuals back, you can use an option to restore the original visuals to the pane.
About info for visuals
Another update is that you can now right click on any visual in the visualization pane to see an About dialog with more information on the visual.
You’ll be able to see things such as the visual’s id, version number, where you got the visual from, and the support information.
Watch the following video to learn more about the personalized visualization pane improvements:
Analytics
Custom format strings
While in the modeling view, you can now enter in a custom format string to customize how the field will show in visuals.
To do this, first select the field in the fields list and select the custom format option in the formatting card of the properties pane.
From there, you’ll be able to select from a list of commonly used format strings.
Or you can use the given an input box to enter in your own format string. Power BI will support most of the VBA style syntax, with a few exceptions. Refer to the full documentation for details.
Once you enter in your custom format string, it will immediately be reflected in the data view and report view.
One of our returning interns, Chelsie Eiden, worked on this feature over the summer. You might remember her from the theme picker that she worked on last year! It’s great to have interns come back to the Power BI team โ hopefully you’ll see more of Chelsie again in the future.
Watch the following video to learn more about custom format strings:
Conditional formatting for more visual formatting options
We’re excited to announce more formatting features this month that can be conditionally formatted, moving us ever closer to our goal of everything within the formatting pane being conditionally formattable.
Alt text (General)
Alt text is the first feature that now has conditional formatting. This is really a huge step forward in terms of accessibility. Alt text, which is read off by screen readers whenever the visuals are in focus, can now be dynamically changed based on the current filter state of the visual. You can for example call out in the alt text both the highest and the lowest categories and have confidence it will always reflect the current data in the visual.
Border color (Border)
Border color is the next feature that has this added capability. Just as you can with backgrounds, you can dynamically adjust the border color based on current filter state. This could be a good option to use if you want to color a visual based on a specific KPI but you felt like the background color was too intense of an option.
Gauge colors
Back in June, we added conditional formatting to fill color for gauge, and this month we are expanding that to four other gauge properties as well:
-
Target text color
- Target fill color
- Data label color
- Callout value color
Watch the following video to learn more about the conditional formatting updates:
Drill through discoverability improvement
We’ve heard feedback that end users don’t always know when they can drill through on a visual to another report page. To help with this, we’ve added text to the visual’s tooltip to let them know it’s enabled.
Watch the following video to learn more about the drill through discoverability improvement:
New DAX expressions: REMOVEFILTERS and CONVERT
We have two new DAX expressions this month! REMOVEFILTERS is the same as ALL when used inside CALCULATE to remove filters. CONVERT changes the expression to another data type.
Visualizations
PowerApps visual now generally available and certified
The PowerApps marketplace visual allows you to add the power of apps to reports and dashboards. The PowerApps visual brings forms and data editing directly to Power BI by allowing you to embed your own PowerApps right in your report or dashboard. And as of this month, the visual is now generally available and certified, allowing you to use the visual in even more places.
Data connectivity
PostgreSQL connector enhancements
Support for folding over Native Database queries
The PostgreSQL connector has been enhanced with query folding over a native query. You can now paste in a native query when connecting to a PostgreSQL database, with folding capable operations applied on top according to normal Import or Direct Query logic.ย
DirectQuery support generally available
We’re happy to announce that the DirectQuery support within the PostgreSQL connect that we announced last month is now generally available.
Data preparation
Copy to clipboard from data profiling
With this month’s releaseย we’re making it possible to export data profiling informationย by copying it to the clipboard from the Power Query Editor.ย
The new Copy option is available from all Data Profilingย surfacesย as described below.
Data Profiling Surface |
Screenshot |
Data exported to clipboard |
Column Quality Summary | ||
Column Distribution charts | ||
Column Profile Details Pane โ Column statistics | ||
Column Profile Details Pane โ Column distribution |
Watch the following video to learn more about copy to clipboard from data profiling:
Template apps
Template apps are a great way to provide Power BI users with installable, ready to use, actionable โ quality applications. These templates contain reports, dashboards, and data models that can connect to the user’s data, creating immediate value and action.ย Each month, we’re highlighting a recent template app that’s released to the marketplace.
Google Analytics report
This month’s featured template app is one of the more popular template appsโฏ in the AppSource store, which is theย Google Analytics report by Havens consulting. The report model was built using the Google Analytics data connector. It can be connected to your own Google Analytics data using your own credentials.
The report itself enables users to do a deep-dive analysis on daily page views with: forecasting and adjustable rolling average, month-over-month traffic gain or loss, top pages visited, traffic source trends over time, and more. Plus, the report contains many great examples of Power BI features and functionality including bookmarks, what-if parameters, advanced conditional formatting, and custom visuals. Overall this report provides a fantastic out-of-the-box Power BI experience and is a great way to supercharge your Google Analytics data.
You can install the app right in the Power BI service and set its parameters to your google analytics view ID.ย Once you install it, the reportย isย now yours, so you can customize and share as much as you want.
Microsoft partners can create their own template apps to publish in the marketplace. If you’re interested in this, be sure to check outโฏour documentation to get started.
Download this app from AppSource.
Other
Performance improvements for multi-dimensional models
This month we’ve done work that gives users of Analysis Services 2019 multi-dimensional users general performance improvements. When using the new Release Candidate of SQL Analysis Services 2019 (see https://powerbi.microsoft.com/en-us/blog/whats-new-for-sql-server-2019-analysis-services-rc1/ for details), you’ll see more performant queries and optimization of measure execution. This improvement, which some may know as “Super DAX”, helps reduce the chattiness between Power BI and Analysis Services. Some other features that come with this is multi-dimensional support for expand/collapse on row headers, cross-highlighting support across different tables, and high density sampling for visuals that support it. You will need to enable this setting in Analysis Services to take advantage of it in Power BI.
Query performance improvements for DirectQuery models
This month, we’ve also introduced runtime constant folding to improve query performance for some DirectQuery models. The amount of performance improvements you’ll see will vary depending on the DAX expressions you’re using, the model structure, speed of the DirectQuery source, etc. However, with some early users, we’ve seen some quite significant performance gains.
Thatโs all for this month! We hope that you enjoy these updates for the month. Please continue sending us your feedback and donโt forget to vote for other features that youโd like to see in the Power BI Desktop. For any preview features, you can always give us your feedback in our active community. You can also download the .pbix file I used, and if youโre looking for a similar design for your reports, I was using the Microsoft layout from PowerBI.Tips.