Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Filter by Categories
ArcGIS Pro

Label Expressions in ArcGIS Pro

Beginner’s Guide to Label Expressions in ArcGIS Pro

If you’re diving into ArcGIS Pro and want to enhance your maps with custom labels, you’re in the right place. Label expressions offer a powerful way to control the content and appearance of your labels. Let’s get started!

If you are working with ArgGIS Pro you should be listening to our podcast!

What are Label Expressions?

Label expressions are formulas that determine how data will be displayed on your map. They allow you to combine, modify, and format your data fields in various ways, ensuring that your labels convey the right message.

Why Use Label Expressions?

Imagine you have a map of cities, and you want to label them with both their name and population. Instead of having two separate labels, you can use a label expression to combine these fields into one label, like “New York (8.4M)”.

Getting Started with Label Expressions in ArcGIS Pro

  1. Accessing the Label Manager: In ArcGIS Pro, open the Labeling tab and click on the Label Manager button.
  2. Choosing a Label Class: In the Label Manager, select the label class you want to modify.
  3. Opening the Expression Dialog: Click on the Expression button to open the Label Expression dialog.

Basic Label Expressions in ArcGIS Pro

Label expressions are more than just displaying a field’s value. Even at a basic level, they offer a range of possibilities to customize and enhance your map’s labels. Here’s a more detailed look:

Concatenating Fields:

  • What is it? This is the process of joining two or more fields together in a single label.
  • How to use: Use the + operator to combine fields.
  • Example: If you have a map of cities and want to display both the city name and its state, your expression might look like: [City] + ", " + [State]. This would produce labels like “Los Angeles, California”.

Adding Static Text:

  • What is it? You can add your own text to labels, which remains the same across all features.
  • How to use: Simply include your text in double quotes and combine it with fields using the + operator.
  • Example: To add the word “City:” before each city name, use: "City: " + [CityName].

Using Numeric Fields:

  • What is it? If you have numeric data, you can display it directly or perform basic arithmetic operations.
  • How to use: Simply reference the numeric field in your expression. For arithmetic, use standard operators like +, -, *, and /.
  • Example: To display an area and its half value, you might use: [Area] + " sq. km (Half: " + ([Area]/2) + " sq. km)".

Handling Null or Missing Values:

  • What is it? Sometimes, data might have missing or null values. You’d want to handle these gracefully in your labels.
  • How to use: Use conditional statements to check for null values and provide alternative text.
  • Example: If a city might not have a known population, you can use: If IsNull([Population]) Then "Unknown" Else [Population].

Formatting Dates:

  • What is it? Date fields can be formatted to display in a specific style.
  • How to use: Use date formatting functions to change how dates are displayed.
  • Example: To display a date in the format “DD-MM-YYYY”, you might use a function like FormatDate([DateField], "DD-MM-YYYY").

Changing Case:

  • What is it? You can change the text case to upper, lower, or proper case.
  • How to use: Use functions like UCase, LCase, or Proper to change text case.
  • Example: To display a city name in uppercase, use: UCase([CityName]).

Advanced Label Expressions in ArcGIS Pro

Advanced label expressions go beyond basic concatenation and formatting. They incorporate programming logic, conditional statements, and more complex functions to create dynamic labels based on attribute values or other criteria.

Multi-line Expressions:

  • What is it? These are label expressions that span multiple lines, allowing for more complex logic and calculations.
  • How to use: In the Label Expression dialog, check the “Advanced” checkbox. This allows you to enter multi-line scripts.
  • Example:
    python def FindLabel([City], [Population]): if [Population] > 1000000: return [City] + " (Major City)" else: return [City]

Conditional Labeling:

  • What is it? This involves using conditions to determine how and when a label is displayed.
  • How to use: Incorporate if-else or switch-case statements in your expression.
  • Example: Label cities based on their population size:
    python def FindLabel([Population]): if [Population] > 500000: return "Large City" elif [Population] > 100000: return "Medium City" else: return "Small City"

Using Functions:

  • What is it? ArcGIS Pro supports various built-in functions that can be used within label expressions.
  • How to use: Call the appropriate function within your expression.
  • Example: To calculate the square root of a field value:
    python def FindLabel([Value]): return "Square Root: " + Sqr([Value])

Looping and Iteration:

  • What is it? In some cases, you might need to loop through a list or set of values within your label expression.
  • How to use: Use loops like for or while within your expression.
  • Example: Displaying a list of neighboring cities:
    python def FindLabel([Neighbors]): label = "Neighboring Cities: " for city in [Neighbors]: label += city + ", " return label[:-2] # Remove the trailing comma and space

Handling Special Characters:

  • What is it? Sometimes, your labels might need to include special characters or symbols.
  • How to use: Use escape sequences or special codes to represent these characters.
  • Example: To display a newline between city and state:
    python [City] + "\n" + [State]

Custom Functions:

  • What is it? For more complex labeling requirements, you can define your own custom functions within the label expression.
  • How to use: Define the function at the beginning of your expression and then call it as needed.
  • Example: A function to label cities based on both population and area: def CityLabel(population, area): if population/area > 1000: return "Dense City" else: return "Sparse City" FindLabel([Population], [Area])

Tips for Effective Labeling

  1. Keep It Simple: Labels should be concise and easy to read. Avoid overcrowding your map with too much text.
  2. Test Your Expressions: Always click on the Verify button in the Label Expression dialog to ensure there are no syntax errors.
  3. Save Your Expressions: Both regular and advanced label expressions can be saved as label expression files (.lxp), allowing you to reuse them in other projects.


Label expressions are a powerful tool in ArcGIS Pro, enabling you to customize your map labels to fit your needs. Whether you’re a beginner or an experienced GIS professional, mastering label expressions will elevate your map-making skills to the next level. Happy mapping!

frequently asked questions about label expressions in ArcGIS Pro:

Can I use Python scripts in my label expressions?

  • Answer: Yes, ArcGIS Pro supports multiple scripting languages for label expressions, including Python. When creating a label expression, you can choose the parser (like Python, VBScript, or JScript) and then write your script accordingly.

How do I round numbers or format numeric values in label expressions?

  • Answer: You can use built-in functions to format numbers. For instance, to round a number to two decimal places in Python, you’d use: round([FieldName], 2).

What’s the difference between the “Advanced” checkbox and a regular label expression?

  • Answer: A regular label expression is typically a single line that defines how the label is displayed. When you check the “Advanced” checkbox, it allows you to enter more complex, multi-line scripts that can contain loops, multiple conditions, and other advanced programming logic.

How can I test or verify my label expression to ensure it’s correct?

  • Answer: In the Label Expression dialog, there’s a ‘Verify’ button. After writing your expression, click this button. ArcGIS Pro will check the syntax of your expression and notify you of any errors. It’s a good practice to always verify your expressions before applying them.

Can I save and reuse my label expressions in other projects?

  • Answer: Yes, once you’ve created a label expression, you can save it as a label expression file with an .lxp extension. This file can then be imported into other layers or maps, allowing you to reuse your custom label expressions without having to recreate them.

How do I label a subset of features based on a specific field value?

  • Answer: Instead of using the label expression to filter features, you’d typically set up a query in the label class properties. For instance, if you only want to label cities with a population over 50,000, you’d set up a query like Population > 50000 in the label class properties. Only features meeting this condition will be labeled.

Recommended GIS resources


About the Author
I'm Daniel O'Donohue, the voice and creator behind The MapScaping Podcast ( A podcast for the geospatial community ). With a professional background as a geospatial specialist, I've spent years harnessing the power of spatial to unravel the complexities of our world, one layer at a time.