Skip to main content

LegendItem

Summary

LegendItem provides access to legend item level information in a LegendElement.

Discussion

The items property on the LegendElement class returns a list of LegendItem objects. For each legend item, you can change properties such as arrangement, patchHeight, and its visible status. The typical workflow is to iterate through the list of elements, determine the item of interest by its name property, then make the appropriate changes.

Note:

The properties exposed to the LegendItem class do not apply to all renderer types. It is important to catch these exceptions when necessary.

Properties

Name Explanation Data type

arrangement

(Read and Write)

A string that determines the legend item arrangement. The following is a valid list of values:

  • PatchLabelDescription—Patch, label, description

  • PatchDescriptionLabel—Patch, description, label

  • LabelPatchDescription—Label, patch, description

  • LabelDescriptionPatch—Label, description, patch

  • DescriptionPatchLabel—Description, patch, label

  • DescriptionLabelPatch—Description, label, patch

String

column

(Read and Write)

The column position for a legend item. The column property only applies to legends using the ManualColumns fitting strategy.

Long

name

(Read only)

Returns the legend item name. The legend item name is set by modifying the layer name.

String

patchHeight

(Read and Write)

The height of a legend item patch. Units are in points.

Double

patchWidth

(Read and Write)

The width of a legend item patch. Units are in points.

Double

showFeatureCount

(Read and Write)

A Boolean that controls whether the feature count is placed next to the legend item text. The value displayed is dependent on the showVisibleFeatures setting.

Boolean

showVisibleFeatures

(Read and Write)

A Boolean that controls whether the legend item displays all values or only those values that appear in the visible extent.

Boolean

type

(Read only)

Returns a value of LEGEND_ITEM.

String

visible

(Read and Write)

Returns True if the legend item is visible in the legend.

Boolean

Methods

applyStyleItem(style_item)

Applies a StyleItem to a LegendItem.

When referencing a StyleItem using the listStyleItems method on the ArcGISProject class, the style_class parameter must be LEGEND_ITEM. For more information and code samples, refer the to StyleItem help topic.

Note:

Styles must be added to a project prior to using the applyStyleItem method. Styles can be added using the updateStyles method on the ArcGISProject class.

Name Explanation Data type

style_item

A reference to a StyleItem in a project.

StyleItem

Code sample

LegendItem example

The following script iterates through all legend items in a legend. Its sets the patchHeight and patchWidth for all legend items, then sets showVisibleFeatures for a specific legend item.

p = arcpy.mp.ArcGISProject('current')
lyt = p.listLayouts('Layout')[0]
leg = lyt.listElements('LEGEND_ELEMENT')[0]

#Change the patch size for all legend items
#only display features in the visible map frame extent
for itm in leg.items:
  itm.patchHeight = 15
  itm.patchWidth = 30
  if itm.name == 'Geological Types':
    itm.showVisibleFeatures = True