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
Property | Explanation | Data Type |
arrangement (Read and Write) | A string that determines the legend item arrangement. The following is a valid list of values:
| 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 |
Code sample
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