Mind maps

class manim_extensions.mindmap.MindMap(map={}, buff=0.2, direction=array([1., 0., 0.]), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]

Bases: AbstractMap

Mind map class: parses mind-map data in the following format and builds the corresponding mind-map object.

Example: MindMapExample

../../_images/MindMapExample-1.png
from manim import *
from manim_extensions.mindmap import MindMap

class MindMapExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Calculus"),
            'child': [
                {'node': MathTex(r"Limits")},
                {'node': MathTex(r"Derivatives")},
                {'node': MathTex(r"Integrals")},
            ]
        }
        mind_map = MindMap(data)
        mind_map.scale_to_fit_width(12)
        self.add(mind_map)
from manim import *
from manim_extensions.mindmap import MindMap

class MindMapExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Calculus"),
            'child': [
                {'node': MathTex(r"Limits")},
                {'node': MathTex(r"Derivatives")},
                {'node': MathTex(r"Integrals")},
            ]
        }
        mind_map = MindMap(data)
        mind_map.scale_to_fit_width(12)
        self.add(mind_map)

__init__(map={}, buff=0.2, direction=array([1., 0., 0.]), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]

Constructor for the mind-map class.

Parameters:
  • map (Dict) – mind-map data

  • buff (float) – padding between node content and node border

  • direction – node layout direction

  • level_spacing (float) – spacing between layers

  • node_spacing (float) – spacing between nodes

  • node_style (NodeStyle) – node style

class manim_extensions.mindmap.StandardMap(map={}, buff=0.2, direction=array([1., 0., 0.]), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]

Bases: AbstractMap

Two-sided mind map: data format is the same as MindMap.

Parameters:
  • map (Dict) – mind-map data

  • buff (float) – padding between node content and node border

  • direction – layout direction

  • level_spacing (float) – spacing between layers

  • node_spacing (float) – spacing between nodes

  • node_style (NodeStyle) – node style

Example: StandardMapDocExample

../../_images/StandardMapDocExample-1.png
from manim import *
from manim_extensions.mindmap import StandardMap

class StandardMapDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Root"),
            'child': [
                {'node': MathTex(r"Left")},
                {'node': MathTex(r"Right")},
            ]
        }
        mind_map = StandardMap(data)
        mind_map.scale_to_fit_width(12)
        self.add(mind_map)
from manim import *
from manim_extensions.mindmap import StandardMap

class StandardMapDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Root"),
            'child': [
                {'node': MathTex(r"Left")},
                {'node': MathTex(r"Right")},
            ]
        }
        mind_map = StandardMap(data)
        mind_map.scale_to_fit_width(12)
        self.add(mind_map)

__init__(map={}, buff=0.2, direction=array([1., 0., 0.]), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]
class manim_extensions.mindmap.CatalogMap(map={}, buff=0.2, level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]

Bases: AbstractMap

Catalog / organisation-chart: data format is the same as MindMap, layout direction is downwards.

Parameters:
  • map (Dict) – catalog data

  • buff (float) – padding between node content and node border

  • level_spacing (float) – spacing between layers

  • node_spacing (float) – spacing between nodes

  • node_style (NodeStyle) – node style

Example: CatalogMapDocExample

../../_images/CatalogMapDocExample-1.png
from manim import *
from manim_extensions.mindmap import CatalogMap

class CatalogMapDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Company"),
            'child': [
                {'node': MathTex(r"Engineering")},
                {'node': MathTex(r"Sales")},
            ]
        }
        catalog = CatalogMap(data)
        catalog.scale_to_fit_width(12)
        self.add(catalog)
from manim import *
from manim_extensions.mindmap import CatalogMap

class CatalogMapDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"Company"),
            'child': [
                {'node': MathTex(r"Engineering")},
                {'node': MathTex(r"Sales")},
            ]
        }
        catalog = CatalogMap(data)
        catalog.scale_to_fit_width(12)
        self.add(catalog)

__init__(map={}, buff=0.2, level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]
class manim_extensions.mindmap.TimeLine(map={}, buff=0.2, sides=(array([0., 1., 0.]), array([ 0., -1., 0.])), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]

Bases: AbstractMap

Timeline: data format is the same as MindMap.

Parameters:
  • map (Dict) – timeline data

  • buff (float) – padding between node content and node border

  • sides – node layout direction; growth direction of subtrees rooted at second-level nodes

  • level_spacing (float) – spacing between layers

  • node_spacing (float) – spacing between nodes

  • node_style (NodeStyle) – node style

Example: TimeLineDocExample

../../_images/TimeLineDocExample-1.png
from manim import *
from manim_extensions.mindmap import TimeLine

class TimeLineDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"History"),
            'child': [
                {'node': MathTex(r"2022")},
                {'node': MathTex(r"2023")},
                {'node': MathTex(r"2024")},
            ]
        }
        timeline = TimeLine(data)
        timeline.scale_to_fit_width(12)
        self.add(timeline)
from manim import *
from manim_extensions.mindmap import TimeLine

class TimeLineDocExample(Scene):
    def construct(self):
        data = {
            'node': MathTex(r"History"),
            'child': [
                {'node': MathTex(r"2022")},
                {'node': MathTex(r"2023")},
                {'node': MathTex(r"2024")},
            ]
        }
        timeline = TimeLine(data)
        timeline.scale_to_fit_width(12)
        self.add(timeline)

__init__(map={}, buff=0.2, sides=(array([0., 1., 0.]), array([ 0., -1., 0.])), level_spacing=1.0, node_spacing=0.5, node_style=<manim_extensions.mindmap.nodes.node.NodeStyle object>)[source]