How to Add Custom Shapes in Power BI

Cody Schneider8 min read

Power BI's standard charts are great, but sometimes you need visuals that speak your company's language. Custom shapes - things like branded icons, unique map regions, or data-driven indicators - can transform a generic dashboard into a compelling, clear, and engaging report. This article will guide you through the different ways to add and use custom shapes in Power BI, from simple background images to dynamic, data-driven SVGs and custom maps.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Why Use Custom Shapes in Power BI?

Incorporating custom shapes goes beyond just making your report look nice. It's a strategic choice that can dramatically improve how your audience understands the data.

  • Enhance Branding and Consistency: Use your company's logo, official icon sets, and color palettes to create reports that feel like an extension of your brand. This reinforces a professional and cohesive identity across all your business communications.
  • Improve Storytelling: A picture is worth a thousand data points. Using an icon of a truck to represent logistics data or a shopping cart for e-commerce sales makes your report instantly more intuitive. It helps your audience grasp the context of the data without needing to read every axis label.
  • Increase User Engagement: Let's be honest - rows of numbers and standard bar charts can make people’s eyes glaze over. A visually interesting report with unique shapes captures attention, encourages exploration, and makes the insights more memorable. Instead of a simple KPI card showing sales are up, imagine an up-arrow icon that changes color from red to green based on performance.

Think of it this way: you could show regional performance with a basic clustered column chart or you could show a map of your custom sales territories, with each territory represented by a unique shape that's color-coded based on its performance against target. Which one do you think your sales director would rather see?

Before You Begin: Preparing Your Shape Files

Before jumping into Power BI, you need to have your shape files ready. The type of file you need depends on how you plan to use it.

Supported File Formats

For most uses, you'll be working with standard image files. However, for dynamic and scalable shapes, SVGs are the preferred format.

  • PNG & JPG: These are standard raster image formats. They are great for static images, like logos or simple backgrounds. Their main drawback is that they are pixel-based, meaning they can become blurry or distorted when resized.
  • SVG (Scalable Vector Graphics): This is the most flexible format for performance and interactivity. Because SVGs are defined by XML code, they are infinitely scalable without losing quality. They are also ideal for dynamic visuals because you can manipulate the code with DAX to change properties like color or size based on your data.
  • TopoJSON: This is a specific type of JSON file used for the Shape Map visual in Power BI. It contains geospatial data that defines the outlines of custom regions, like states, sales territories, or even building floorplans.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Where to Create or Find Shapes

You don't need to be a graphic designer to get high-quality custom shapes.

  • Design Tools: For creating your own custom SVGs or icons, tools like Adobe Illustrator, Figma, or the free and open-source software Inkscape are excellent choices.
  • Icon Libraries: For ready-made icons, websites like Flaticon, The Noun Project, and Font Awesome offer millions of high-quality SVGs that you can download and use in your reports.

Pro Tip: When preparing your files, keep them simple. Overly detailed shapes can slow down report performance and create visual clutter. If you're using SVGs, use an online optimizer to reduce the file size by removing unnecessary code.

Method 1: The Simple Approach with Static Background Images

The easiest way to add a custom image is by setting it as the background of a visual, shape, or even the entire report page. This method is perfect for adding logos, watermarks, or decorative elements that don't need to change.

Step-by-Step Guide:

  1. Select the visual (like a card, button, or chart) you want to modify. You can also click on the report canvas itself to change the page background.
  2. In the Visualizations pane on the right, click the “Format your visual” icon (the paintbrush).
  3. Expand the appropriate section. This will vary depending on what you selected:
  4. Click the Browse button next to the Image field and select your saved JPG, PNG, or SVG file.
  5. Adjust the Image fit property to control how the image scales. "Fit" will resize the image to fit within the container, while "Fill" will stretch it to cover the entire area.
  6. Use the Transparency slider to make the image more subtle, like a watermark.

This method is quick and effective for static branding, but its limitation is that the shape is purely decorative. It cannot react to data changes dynamically.

Method 2: Creating Dynamic Shapes with SVG and DAX

This is where the real power lies. By combining SVG code with DAX measures, you can create shapes that change their appearance (like color, size, or even which icon is displayed) based on your data. This turns a simple table into a rich, visual KPI dashboard.

The core concept is to write a DAX measure that constructs a complete block of SVG code as a text string. Power BI can then render this code as an image.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Step-by-Step Guide:

Let's create a simple example: a circle that changes color based on sales performance.

1. Get Your Base SVG Code

First, you need the code for your shape. You can create a simple circle in a tool like Figma and export it as an SVG, or write the code yourself. Open the SVG file in notepad or a code editor. For a simple green circle, the code would be:

<svg height="50" width="50" xmlns="http://www.w3.org/2000/svg">
  <circle r="20" cx="25" cy="25" fill="green" />
</svg>

The key part we're going to manipulate is fill="green". We want to replace "green" with a color determined by our data.

2. Write the DAX Measure

In Power BI, create a new measure. We will use a DAX variable to determine the color and then insert that variable into our SVG code.

Performance Indicator = 
VAR SalesAmount = [Total Sales]
VAR IndicatorColor = 
    SWITCH(
        TRUE(),
        SalesAmount > 1000000, "#2ECC71",  // Green for high sales
        SalesAmount > 500000, "#F1C40F",   // Yellow for medium sales
        "#E74C3C"                         // Red for low sales
    )
VAR SvgCode = 
    "data:image/svg+xml,utf8," &
    "<svg height='50' width='50' xmlns='http://www.w3.org/2000/svg'>" &
        "<circle r='20' cx='25' cy='25' fill='" & IndicatorColor & "' />" &
    "</svg>"
RETURN SvgCode

Here's a breakdown of the measure:

  • VAR SalesAmount: Gets the total sales from your data.
  • VAR IndicatorColor: Uses a SWITCH statement to set color based on sales thresholds.
  • VAR SvgCode: Builds the SVG code as a data URI string, replacing the fill attribute with the IndicatorColor.
  • RETURN: Output the SVG as a string that Power BI recognizes as an image.

3. Set the Data Category

After creating the measure:

  1. Find and click on your measure (Performance Indicator) in the Fields pane.
  2. In the ribbon at the top, under Measure tools, locate the Data category dropdown.
  3. Select Image URL.

Now, when you add this measure to a table or matrix visual, Power BI will display the dynamically colored circle based on your sales data.

Method 3: The Geospatial Method with Custom Shape Maps

If you want to visualize data across custom geographical regions—like internal sales territories or delivery zones that don't align with standard city or state boundaries—the Shape Map visual is your solution.

This method requires a TopoJSON file that maps out the coordinates of your custom areas.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Step-by-Step Guide:

1. Prepare Your TopoJSON File

This step involves creating or obtaining a TopoJSON file that contains the shapes of your custom regions. Each shape should have a unique identifier matching your data.

For instance, if mapping sales regions ("West", "Central", "East"), the TopoJSON should contain those regions with the corresponding keys.

Use GIS tools or online converters like Mapshaper to create or modify these files.

2. Enable and Add the Shape Map

  • Enable the Shape Map visual feature:
  • Add the Shape Map visual to your report from the Visualizations pane.

3. Load and Configure Your Custom Map

  • Select the Shape Map visual.
  • Go to the Format pane.
  • Expand Map settings.
  • Under Map type, select Custom map.
  • Browse to your .json or .topojson file and select it.

Your custom regions should now appear on the map.

4. Link Your Data to the Map

  • Drag your region name field (e.g., "Sales Region") to the Location well. Make sure the region names match the keys in your TopoJSON.
  • Drag your measure (e.g., Total Sales) into Color saturation.

The map will now display regions colored according to your data. Adjust settings like titles, colors, and labels for better presentation.

Final Thoughts

Adding custom shapes transforms your Power BI reports from standard dashboards into tailored, high-impact analytical tools. Whether you're using static images for branding, dynamic SVGs for clear KPI indicators, or TopoJSON files for custom territory mapping, these techniques make your data stories more intuitive, engaging, and uniquely yours.

Building effective reports often involves a lot of manual configuration in tools like Power BI. At Graphed, we focus on cutting down the time it takes to get from raw data to actionable insight. You can connect your marketing and sales data sources in just a few clicks, then create entire dashboards and reports simply by describing what you need in plain English. Instead of spending hours adjusting settings and writing formulas, you can ask for "a line chart showing sales from Shopify broken down by top 5 marketing channels from Google Analytics" and have Graphed build it for you in seconds.

Related Articles