Group
Description
A Group
is a Mobject
that can contain others mobjects, including sub-groups.
Groups have additional spatial relationships for arranging their submobjects in a row, column, or grid, which are covered on this page.
Details
Groups are used for clear organization of related items.
Mobjects by default can add submobjects with mob1.add(mob2)
but that should be used sparingly.
Constructor Parameters
mobjects
(tuple): Mobjects to add to the group.kwargs
(dict): Additional arguments forTransformableMobject
.
Attributes
submobjects
(List[Mobject]): List of mobjects contained in the group.
Methods
add(*mobjects: Mobject, insert_at_front: bool = False) -> Self
: Adds mobjects to the group.set_color(color: ManimColor, family: bool = True) -> Self
: Sets the color of the group and its submobjects.set_opacity(opacity: float, family: bool = True) -> Self
: Sets the opacity of the group and its submobjects.arrange(direction: Vector3 = RIGHT, aligned_edge: Vector3 = ORIGIN, buff: float = DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, center: bool = True) -> Self
: Arranges the submobjects in a specified direction.arrange_in_grid(num_rows: int | None = None, num_cols: int | None = None, aligned_edge_within_row: Vector3 = UP, aligned_edge_within_col: Vector3 = LEFT, row_direction: Vector3 = RIGHT, col_direction: Vector3 = DOWN, buff_within_row: float = DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, buff_within_col: float = DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, buff: float | None = None) -> Self
: Arranges the submobjects in a grid.
Examples
Example 1
Create a group with a square, an arrow, and a text label and set the group's color.
from smanim import *
square = Square()
arrow = Arrow.points_at(square.get_corner(UR))
group = Group(square, arrow)
label = Text("Upper right").next_to(arrow, UP)
group.add(label) # Just for demo of `add` function, label should be included in constructor here
group.set_color(GRAY)
canvas.add(group)
canvas.draw(crop=True, ignore_bg=True)
Example 2
Create a group of 8 squares with different opacities and put them in a grid with 2 rows and 4 cols.
from smanim import *
squares = [Square(color=GRAY, opacity=i / 8) for i in range(8)]
group = Group(*squares)
group.arrange_in_grid(num_rows=2, num_cols=4)
canvas.add(group)
canvas.draw(crop=True, ignore_bg=True)