How to Create a Chart in ArcGIS Pro

Chinook Salmon Returns in Pacific Norhtwest Rivers (2020 - 2022): Hatchery vs. Wild


Charts are a powerful way to visualize patterns, trends, and relationships in your GIS data. Whether you're exploring demographic data, tracking land use change, or analyzing water quality metrics, ArcGIS Pro makes it easy to create a variety of charts right within your project.

Why Use Charts?

  • Explore trends and distributions in your spatial data
  • Compare values across categories or time
  • Support storytelling in reports, dashboards, and layouts
  • Enhance your understanding before spatial analysis

Objective (s): To visualize and compare hatchery and wild Chinook salmon returns across selected rivers in the Pacific Northwest. This exercise shows how charting tools in ArcGIS Pro can be used to explore trends in salmon populations, and essential cultural and food resource for indigenous communities.

Software requirement(s):

  • ArcGIS Pro 3.4.x

Download (s):

You can download the dataset used in this article for training purposes here https://tribalgis-my.sharepoint.com/:x:/p/sarques/EQCW0R1waaBKqWama4I4upcBB1qYoGT3hvBktJGT24LgIg?e=cdhLWY

Disclaimer: This dataset is fictional and was created for educational and demonstration purposes only. It does not represent actual Chinook salmon return counts. For accurate data, please consult NOAA Fisheries, state agencies, or tribal resources departments.

This article walks you through the basics of creating charts in ArcGIS Pro.

Part 1 - Add the Salmon Returns Data to the Map

Step 1: Add the CSV to ArcGIS Pro

  1. Download the csv "Chinook_Salmon_Returns.csv".
  2. Open ArcGIS Pro and create a new project.

  1. Name your Project "Chinook_Salmon".

  1. Go to the Catalog pane, right-click Folders > Add Folder Connection > browse to the folder where you saved the CSV file > Select the folder and click OK.

  1. Right-click the file "Chinook_Salmon_Returns.csv" and click Add To Current Map.

Step 2: Display Data as XY Points

  1. In the Contents pane, right-click the CSV standalone table > Create Points from Table > XY Table To Point.

  1. Set:
  • Input Table: Chinook_Salmon_Returns.csv
  • Output Feature Class: Chinook_Salmon_Returns
  • X Field to Longitude
  • Y Field to Latitude
  • Coordinate System to WGS 1984 (or another appropriate CS).
  1. Click OK.

Save your Project!

Once your salmon dataset is added as a feature layer in ArcGIS Pro, you can create visualizations to explore trends and compare values across rivers and years. In this section, we'll create a bar chart and a line chart to compare Chinook salmon returns by river and year, then explore how dynamic expressions can enhance your chart analysis.

Part 2 - Create a Chart (e.g., Wild vs Hatchery by River or Year)

ArcGIS Pro supports several chart types that help visualize attribute data stored in your layers. Charts are powerful tools for identifying patterns, comparing categories, and tracking changes over time.

Common charts and uses:

Chart Type

Example Use Case

Bar Chart Ideal for comparing numeric values across categories (e.g., hatchery vs. wild salmon by river)
Line Chart Useful for showing trends over time, such as salmon returns over multiple years
Pie Chart Best for illustrating proportions, like the percentage of wild vs. hatchery returns in a given year
Histogram Show the distribution of a single numeric variable (e.g., distribution of adult Chinook Salmon lengths or weights in the Columbia River in 2022)
Scatter Plot Visualizes the relationship between two numeric variables (e.g., Chinook Salmon Age and Fork Length)
Box Plot Compares the spread of numeric values across categories (e.g., fork length of Chinook Salmon by origin "Wild vs. Hatchery)

Step 1: Open the Chart View

  1. In the Contents pane, right-click your Chinook salmon layer, then go to Create Chart > Bar Chart

You should have a similar display.

Step 2: Configure the Chart Properties

You can build different charts based on your analytical goals. Here are two common approaches:

Option A: Compare Hatchery vs. Wild Returns by River

  1. Set the Data tab:
  • Category or Date: Select "River" (This groups the data by river name on the X-axis.)
  • Aggregation: Choose "Sum" (This sums the values across all years for each river.)
  • Numeric Field:
    • First, click Select and select "Hatchery Returns"
    • Then click Apply
    • Click Select again to include "Wild_Returns" as a second numeric field (This creates grouped bars for each river showing hatchery and wild totals side-by-side.)
  • Split By (Leave this empty): You don't need a split field for this chart - you are already comparing the two return types with separate series.
  • Data Labels (Optional): Enable to show values on top of each bar for quick comparison. I won't enable this option.
  • Sort (Optional): I won't use this option here, but you could for example sort by total returns descending if you'd like to show the highest-return rivers first:
    • Sort by: "Hatchery_Returns or "Total_Returns"
    • Order Descending

You should see a similar display.

  1. The Series tab:

Helps you customize the appearance of each data series.

  • Name and Color: you can rename your series labels (e.g., change "Hatchery_Returns" To "Hatchery Salmon" and "Wild_Returns" to "Wild Salmon" and set unique colors.
  • Symbol Style: You can adjust the fill, outline for each series.

Series Display Options

  • Side-by-Side: Displays bars for each series next to each other for each category. That's the best choice for showing direct comparison of different types of returns.
    • Example: For each river, you'll see one bar for "Hatchery_Returns" and one bar for "Wild_Returns", side by side.
    • When to use: Ideal for comparing absolute values between two or more series (e.g., how many hatchery vs. wild salmon returned to each river).
  • Stacked: Stacks bars on top of one another to show combined totals. This option is useful for emphasizing overall return size and how it breaks down.
    • Example: The height of the bar shows the total Chinook returns, with the bar split into segments showing the proportion of hatchery and wild returns.
    • When to use: Good for visualizing total volume while still showing the contribution of each return type.
  • 100% Stacked: Stacks bars like above but scales them to equal height (100%), showing only percentage contribution. Ideal for showing differences in hatchery reliance across rivers, even if total returns vary.
    • Example: Each bar will be the same height (100%) but will show the relative proportion of wild vs. hatchery returns per river.
    • When to use: Use when comparing proportional differences rather than raw numbers.
  • Grid: Places each series in a separate mini chart (a small multiples layout). Good for side-by-side trend comparison when clutter is a concern.
    • Example: You'll see one mini-chart per series (e.g., one for wild, one for hatchery), each showing all rivers.
    • When to use: Best for comparing trends for each variable independently in a clean layout.
  1. The Axes tab:

It lets you control the appearance, scale, and formatting of the X- and Y- axes. These options are especially helpful for making your chart clearer and more readable.

  • X-axis: This is the field used to categorize the data - like River or Year. You define this in the Data tab, but it's shown here for reference.
    • Label character limit: Limits the number of characters shown for category labels (e.g., river names here). I set it to 14. You can use it of your labels are long and overlapping.
    • Label orientation: Controls the angle of the text labels. Horizontal is best for short names. Angled or vertical are useful when labels overlap (e.g., lots of rivers or years).
  • Y-axis:
    • Interval: Controls the spacing between values on the Y-axis. Helps prevent clutter and keeps tick marks meaningful.
    • Bounds: Set a consistent min or max value to compare charts fairly. I used 520,000 as the max Y-value is 517,000. Setting bounds ensures that your charts don't auto-scale in misleading ways when comparing between rivers or years.
    • Number format: You can choose how numbers appear (number, scientific, percentage, etc.).

Keep axis formatting consistent across charts if you plan to place them side-by-side in a report, layout, or dashboard.

  1. The Guides tab:

Add reference lines or ranges to your chart. You can use guides to call attention to thresholds, goals, or risk levels.

  • Guide Lines: Add a horizontal line at 300,000 returns.
  • Guide Ranges: Highlight a band (e.g., Target return range set between 300000 and 400000).

  1. The Format tab:

This tab allows you to adjust the overall design and readability of your chart by setting themes, fonts, and graphical elements.

  • Chart themes: Changes the overall background and color style of the chart.
    • Light: Best for printing or use on white backgrounds (e.g., reports).
    • Medium: Balanced for presentations.
    • Dark: Ideal for dark-themed dashboards or presentations.
  • Text Elements: Customize the appearance of all textual elements in your chart (Font, Font style, Font size, and color).
  • Symbol elements: Controls the visual style of chart components like lines, background, and grids.
    • Background Color: Change the area behind your chart (especially helpful when exporting or integrating into layouts).
    • Grid Lines: Choose style (solid, dashed) and color for both X and Y lines.
    • X and Y Axis Lines: Customize the color and thickness of axis lines for emphasis.

  1. The General tab:

This tab allows you to define the informational elements that appear on your chart.

  • Chart Title: Appears at the top of the chart. It should summarize the chart's content clearly.
    • Example: "Chinook Salmon Returns by River (2020 - 2022): Hatchery vs. Wild"
  • X Axis Title: Describes what is shown along the horizontal axis (categories like rivers or years).
    • Example: If grouped by river "River" and if grouped by year "Year"
  • Y Axis Title: Describes the units or measurement along the vertical axis.
    • Example: "Number of Salmon Returns"
  • Legend Title: This is the label above the color legend or series key.
    • Example: "Return Type"
  • Description: This is an optional text that gives background or context to your chart.
    • Example: "This chart compares the number of hatchery and wild Chinook salmon returns in selected Pacific Northwest rivers between 2020 and 2022". This data is fictional and intended for educational use only.

  • Keep titles short but descriptive.
  • Always include a Y-axis title so users know what the values represent.
  • Use the description to note the source, purpose, or limitations.

Once your chart is created, it will appear in the Contents pane under your feature layer, listed beneath a folder icon labeled Charts.

  • You can double-click the chart name to reopen or edit it.
  • Charts are also saved with the project and can be added to layouts for reporting and printing.

Option B: Analyze Trends Over Time by River

  1. In the Contents pane, right-click your Chinook salmon layer, then go to Create Chart > Line Chart

You should see a similar display.

  1. Set the Data tab:
  • Date or Number: Select "Year"
  • Aggregation: Choose "Sum"
  • Numeric Field: "Wild_Returns", "Hatchery_Returns", or "Total Returns" (choose one depending on what trend you want to highlight). I'll choose "Wild_Returns". Click Select and select "Wild_Returns" > Apply
  • Split By: River (Each river gets its own line on the chart)
  • Data Labels (Optional): Enable to show values on top of each bar for quick comparison. I won't enable this option.

You should see a similar display.

  1. The Series tab:

Helps you customize the appearance of each data series. I'll keep the default settings.

  1. The Axes tab:

I formatted the Number format for both axes.

  1. The Guides tab: No guides here.
  2. The Format tab: I chose the Medium theme and formatted all fonts in Arial.
  3. The General tab:
  • Chart Title: "Wild Chinook Salmon Returns by River (2020 - 2022)"
  • X Axis Title: "Year"
  • Y Axis Title: "Number of Wild Chinook Salmon Returns"
  • Legend Title: No Legend Title
  • Description: "This chart illustrates the annual wild Chinook salmon returns for selected rivers in the Pacific Northwest between 2020 and 2022". Data is fictional and intended for demonstration purposes only.

You should have a similar display.

Save your Project!

Step 3: Interact with the Chart(s)

  • Clicking on a bar, point, or line in the chart will select the corresponding features on the map.
  • Use this to explore patterns in your spatial data interactively.

Step 4: Save or Export the Chart(s)

  • You can dock, undock, or float the chart window.
  • To export, click the Export tab and choose:
    • Export As Graphic (SVG, PNG, JPG)
    • Export As Table
    • Capture to clipboard for pasting into reports or PowerPoints

Step 5: Add Chart to a Layout

To include a chart in your map layout:

  1. Create a Layout from the Insert tab.
  2. Click Insert > Chart Frame, then select the chart you created.
  3. Resize and position the chart frame on your layout.

Part 3 - Dynamic expressions in Bar Charts (Using Arcade): Percentage of Wild Returns per River

ArcGIS Pro allows you to create dynamic fields using Arcade expressions directly within your charts. This is useful when you want to analyze derived metrics, such as the percentage of wild returns, without altering your attribute table.

Objective: Compare the percentage of wild and hatchery Chinook salmon returns across rivers.

  1. If necessary open your Bar Chart. In the Contents pane, under Charts, double-click on "Chinook Salmon Returns by River (2020 - 2022): Hatchery vs. Wild".

  1. In the Data tab, For Numeric Field, click the little icon next to + Select to Add Expression.

  1. In the Expression Builder:
    1. Language: Arcade
    2. Title: Enter "Wild Return %"
    3. Copy and paste the following Arcade expression in the Expression box:
return ($feature.Wild_Returns / $feature.Total_Returns) * 100;

  1. Click OK.

Field names: Make sure that there are no typos. They must exactly match the field names in your attribute table (case sensitive).

  1. Repeat the step for the Hatchery Returns

You should see something similar (the values are still very low).

  1. In the Data tab, delete "Hatchery_Returns" and "Wild_Returns"

Although this dataset is for educational/demonstration purposes, the results are pretty realistic. In many Pacific Northwest rivers, wild Chinook salmon returns are significantly lower than hatchery returns, often making up a small percentage of the total. This aligns with real-world concerns among indigenous communities, fisheries managers, and conservationists, especially regarding:

  • Loss of natural spawning habitat
  • Hydroelectricity dams blocking migration
  • Climate impacts on stream flow and temperature
  • Hatchery programs overshadowing wild populations

What can you do with this in your Chart?

  • Show the Disparity Clearly
    • Keep the wild return and hatchery bars in your bar chart - even if they're small.
    • Display your series as a grid to visually separate series and make small values easier to read. it also helps making trends easier to compare.
    • You can even add data labels to make the small wild percentages more visible numerically.
  • Add a Guide Line
    • Add a line at, 25% to indicate a wild return threshold.
  • In your Description field: "Wild Chinook returns remain significantly lower than hatchery returns in most rivers, highlighting continued challenges in restoring self-sustaining wild populations".



Creating charts in ArcGIS Pro is a great way to bring your data to life and uncover spatial insights visually. Whether you're analyzing data trends or preparing for a presentation, charts help you communicate complex ideas clearly and effectively.


We hope that this article has been helpful! If you have any feedback or questions, please feel free to send us an email or connect with us for a chat. The NTGISC team is here to assist you further!

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us