Gantt Charts¶
Example: MyGanttExampleScene ¶
Code: MyGanttExampleScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.gantt_utils import GanttUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MyGanttExampleScene(GanttUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
gantt_data = [
{'Task': 'Job 0', 'Start': 5, 'Finish': 16, 'Resource': 'Machine 0'},
{'Task': 'Job 0', 'Start': 28, 'Finish': 31, 'Resource': 'Machine 1'},
{'Task': 'Job 0', 'Start': 31, 'Finish': 34, 'Resource': 'Machine 2'},
{'Task': 'Job 0', 'Start': 34, 'Finish': 46, 'Resource': 'Machine 3'},
{'Task': 'Job 1', 'Start': 0, 'Finish': 5, 'Resource': 'Machine 0'},
{'Task': 'Job 1', 'Start': 5, 'Finish': 21, 'Resource': 'Machine 2'},
{'Task': 'Job 1', 'Start': 21, 'Finish': 28, 'Resource': 'Machine 1'},
{'Task': 'Job 1', 'Start': 28, 'Finish': 32, 'Resource': 'Machine 3'}
]
gantt_chart = self.gantt_chart_without_ticks(
width=4, height=2, data=gantt_data, n_machines=4, resource_naming="Machine"
)
self.play(
self.set_title_row(
title="GanttUtils",
seperator=": ",
subtitle="gantt_chart_without_ticks",
),
m.FadeIn(gantt_chart)
)
if __name__ == '__main__':
MyGanttExampleScene.render_video_medium()
Example: MySecondGanttExampleScene ¶
Code: MySecondGanttExampleScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.gantt_utils import GanttUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MySecondGanttExampleScene(GanttUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
gantt_data = [
{'Task': 'Job 0', 'Start': 5, 'Finish': 16, 'Resource': 'Machine 0'},
{'Task': 'Job 0', 'Start': 28, 'Finish': 31, 'Resource': 'Machine 1'},
{'Task': 'Job 0', 'Start': 31, 'Finish': 34, 'Resource': 'Machine 2'},
{'Task': 'Job 0', 'Start': 34, 'Finish': 46, 'Resource': 'Machine 3'},
{'Task': 'Job 1', 'Start': 0, 'Finish': 5, 'Resource': 'Machine 0'},
{'Task': 'Job 1', 'Start': 5, 'Finish': 21, 'Resource': 'Machine 2'},
{'Task': 'Job 1', 'Start': 21, 'Finish': 28, 'Resource': 'Machine 1'},
{'Task': 'Job 1', 'Start': 28, 'Finish': 32, 'Resource': 'Machine 3'}
]
gantt_chart = self.gantt_chart_without_ticks(
width=4, height=2, data=gantt_data, n_machines=4, resource_naming="Machine"
)
self.play(
self.set_title_row(
title="GanttUtils",
seperator=": ",
subtitle="gantt_chart_without_ticks",
),
m.FadeIn(gantt_chart)
)
self.wait(1)
gantt_data2 = [
{'Task': 'Order 0', 'Start': 0, 'Finish': 27, 'Resource': 'Line 1'},
{'Task': 'Order 1', 'Start': 16, 'Finish': 36, 'Resource': 'Line 0'},
{'Task': 'Order 2', 'Start': 26, 'Finish': 41, 'Resource': 'Line 2'},
{'Task': 'Order 3', 'Start': 36, 'Finish': 56, 'Resource': 'Line 0'},
{'Task': 'Order 4', 'Start': 0, 'Finish': 10, 'Resource': 'Line 0'},
{'Task': 'Order 5', 'Start': 37, 'Finish': 47, 'Resource': 'Line 1'},
{'Task': 'Order 6', 'Start': 10, 'Finish': 16, 'Resource': 'Line 0'},
{'Task': 'Order 7', 'Start': 8, 'Finish': 13, 'Resource': 'Line 2'},
{'Task': 'Order 8', 'Start': 0, 'Finish': 8, 'Resource': 'Line 2'},
{'Task': 'Order 9', 'Start': 13, 'Finish': 26, 'Resource': 'Line 2'},
{'Task': 'Order 10', 'Start': 27, 'Finish': 37, 'Resource': 'Line 1'},
{'Task': 'Order 11', 'Start': 64, 'Finish': 71, 'Resource': 'Line 0'},
{'Task': 'Order 12', 'Start': 73, 'Finish': 78, 'Resource': 'Line 1'},
{'Task': 'Order 13', 'Start': 73, 'Finish': 79, 'Resource': 'Line 0'},
{'Task': 'Order 14', 'Start': 76, 'Finish': 80, 'Resource': 'Line 2'},
{'Task': 'Order 15', 'Start': 68, 'Finish': 72, 'Resource': 'Line 2'},
{'Task': 'Order 16', 'Start': 67, 'Finish': 73, 'Resource': 'Line 1'},
{'Task': 'Order 17', 'Start': 52, 'Finish': 68, 'Resource': 'Line 2'},
{'Task': 'Order 18', 'Start': 55, 'Finish': 59, 'Resource': 'Line 1'},
{'Task': 'Order 19', 'Start': 60, 'Finish': 64, 'Resource': 'Line 0'},
{'Task': 'Order 20', 'Start': 56, 'Finish': 60, 'Resource': 'Line 0'},
{'Task': 'Order 21', 'Start': 45, 'Finish': 52, 'Resource': 'Line 2'},
{'Task': 'Order 22', 'Start': 59, 'Finish': 67, 'Resource': 'Line 1'},
{'Task': 'Order 23', 'Start': 47, 'Finish': 55, 'Resource': 'Line 1'},
{'Task': 'Order 24', 'Start': 41, 'Finish': 45, 'Resource': 'Line 2'},
{'Task': 'Order 25', 'Start': 72, 'Finish': 76, 'Resource': 'Line 2'}
]
self.play(
m.Transform(
gantt_chart,
self.gantt_chart_without_ticks(
width=4,
height=2,
data=gantt_data2,
n_machines=3,
resource_naming="Line"
)
),
)
self.wait(1)
self.fade_out_scene()
if __name__ == '__main__':
MySecondGanttExampleScene.render_video_medium()