is an option for Tree and related functions that specifies a function to use to generate primitives for rendering subtree elements.


  • TreeElementShapeFunction allows specifying the function to generate the shape of the root node of a tree, as well as that of any subtree at positions matching a pattern.
  • The following option settings can be used:
  • Automaticuse the automatic setting for the shape function
    Nonedo not render the subtree element
    "name"a named subtree element shape function
    funca general subtree element shape function
    {pos1func1,pos2func2,}use subtree element shape function funci at position posi
    {patt1func1,patt2func2,}use funci at positions matching the pattern patti
  • Subtree element style specifications are effectively applied in the order TreeElementStyle, TreeElementStyleFunction and TreeElementShapeFunction, with later specifications overriding earlier ones.
  • TreeElementShapeFunctionfunc specifies that the root node should be rendered with the primitives provided by func[{x,y},data,{w,h}], where {x,y} is the center, data is the data in the root and {w,h} is the width and height.
  • The subtree element function func should render the subtree element primitives in the bounding box {{x-w,x+w},{y-h,y+h}} automatically computed by layout algorithms.
  • In TreeElementShapeFunction, Allfunc uses func for all subtrees.
  • In TreeElementShapeFunction, TreeCases[pattern]func uses func for all subtrees with data matching pattern.


open allclose all

Basic Examples  (4)

Specify an individual subtree element shape function:

Specify all subtree element shape functions:

Use the same shape function for all subtree elements:

Specify positions using position patterns:

Specify positions using data patterns:

Scope  (4)

TreeElementShapeFunction Gallery  (4)

Get a list of built-in collections for VertexShapeFunction:

Use built-in settings for TreeElementShapeFunction in the "Basic" collection:

Simple basic shapes:

Common basic shapes:

Use built-in settings for TreeElementShapeFunction in the "Rounded" collection:

Use built-in settings for TreeElementShapeFunction in the "Concave" collection:

Properties & Relations  (4)

Shapes for subtree elements can be specified by position:

Shapes specified by a subtree take precedence over shapes specified by its ancestors:

A position {i,j,} in a subtree refers to its subtree at relative position {i,j,}:

A relative position {2} at position {1} refers to the global position {1,2}:

In general, a pattern patt applies to subtrees at global positions {i,j,} that match patt:

A list of patterns {patt1,patt2,} applies to relative positions {i,j,} that match patti:

Possible Issues  (1)

Use Inset to render graphics or an image:

TreeElementShape takes graphics or images used for nodes:

Wolfram Research (2022), TreeElementShapeFunction, Wolfram Language function,


Wolfram Research (2022), TreeElementShapeFunction, Wolfram Language function,


Wolfram Language. 2022. "TreeElementShapeFunction." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2022). TreeElementShapeFunction. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_treeelementshapefunction, author="Wolfram Research", title="{TreeElementShapeFunction}", year="2022", howpublished="\url{}", note=[Accessed: 19-June-2024 ]}


@online{reference.wolfram_2024_treeelementshapefunction, organization={Wolfram Research}, title={TreeElementShapeFunction}, year={2022}, url={}, note=[Accessed: 19-June-2024 ]}