Vary symbology by size

Varying the size (or width) of symbols is a good way to indicate variations in magnitude of an attribute. For example, point symbols representing cities can be sized relative to their populations, or the width of line symbols representing pipelines can classify flow volume.

An example of single symbology varied by size
Fire hydrant and water main symbols are varied by size and width, respectively, to show hydrant flow rate and water main diameter.

There are four main ways to vary symbol size. The simplest way to vary symbol size is to set the layer symbology to one of the size-based layer symbology options. Graduated symbols symbology classifies qualitative differences with a discrete number of symbol sizes. Proportional symbology represents quantitative values as a series of unclassed, proportionally sized symbols. Secondly, you can refine one of the other layer symbology options by setting the size variable to a field or an expression. Thirdly, you can control the size (or width) of symbol layer properties by connecting them to an attribute field. Fourthly, you can vary the size of a symbol as the scale of the map changes. While theoretically you can use more than one of these approaches together on a single layer, be aware that the result may be too complex to be understandable. Use these techniques judiciously.

Learn more about layer symbology

Learn more about connecting symbol properties to attributes

Learn more about scale-based symbol sizing

Set the size variable to a field or an expression

When a layer is symbolized with single symbol, unique values, graduated colors, bivariate colors, or unclassed colors, you can also vary the size of the symbols. You can set the size variable to an attribute field, write an expression, or even set the size to random values within a range. The attribute can be the same or different than the one used by the layer symbology. Size is displayed in the current symbol display units.

For example, a layer of points representing farms drawn with unique values has a variety of symbols indicating crop type. Additionally, the annual crop yield for each farm could be represented by varying the size of each symbol.


When working with size variables, symbol size means the size of a point in 2D, and the height and width of a point in 3D. For lines and polygon symbols, size refers to the width of the stroke symbol layers of the symbol. When working with polygons, the size variable is called Outline width.

  1. Select the feature layer in the Contents pane.
  2. On the Feature Layer tab, in the Drawing group, click Symbology Symbology.
  3. In the Symbology pane, on the Vary symbology by attribute tab Vary symbology by attribute, expand the Size heading and do one of the following:
    • Choose a numeric field from the Field menu to vary the symbol size.
    • Choose <random> from the Field menu, and set the size range by specifying Minimum and Maximum sizes. Sizing symbols randomly is a good way to provide visual variety for nonthematic layers. For example, you can set the height of three-dimensional trees in a scene to random to make a natural-looking forest.
    • Write an expression to determine size. Choose Custom from the Field menu, or click the Set an expression button Set an expression to open the Expression Builder dialog box. Write an expression and click Verify Verify to validate it. Note that although an expression is valid, it may not return a valid numeric value for the size variable. You can filter Filter the Expression Builder dialog box to show only numeric fields to help prevent this.

      Learn more about writing expressions in the Arcade language

    In the case of a 3D layer in a scene, you can uncheck Maintain aspect ratio to change Height and Width independently. Height modifies the z-axis and width modifies the x- and y-axes simultaneously.

  4. Optionally, check the Enable size range check box to limit the size of the symbols to a specified range. A histogram shows the data distribution, and you can specify what value corresponds to the minimum and maximum of the size range. This option is not available when the size variable is set to <random>. When Enable size range is not checked, the symbol size is determined by the values returned from the field, the expression, or the random setting, expressed in the current map units.
  5. Optionally, choose a Normalization field. Normalization is only available when the size variable is set to a field. It is not available when the size variable is set to an expression or to <random>.
  6. Check the Show legend check box to add a representation of the size variation to the layer's legend in both the Contents pane and any legends placed on layouts.
  7. To remove the size variable or the normalization field, choose <none> from the Field or Normalization menus, respectively.

Expressions are not saved by the layer if you change the size variable to read from a field instead of an expression. You can save the expression from the Expression Builder dialog box by clicking Export Export before making changes.

Related topics