フローチャート
グラフィック表現
マインドマップ
構造化された表現
ノート
効率的な表現

ガントチャート構文

ガントチャート

ガントチャートは、プロジェクトの進捗とプロジェクトを完了するのに必要な時間を示すための棒グラフです。ガントチャートは、プロジェクトの末端要素と要約要素の開始日と完了日の間の日数を示します。

注意事項

ガントチャートは、各計画タスクを左から右に伸びる連続したバーとして記録します。x 軸は時間を表し、y 軸はさまざまなタスクとその完了順序を記録します。

さらに重要なのは、あるタスクの日付、日数、または特定の日付セットが除外された場合、ガントチャートはタスク内部に隙間を作るのではなく、同じ日数だけ右に延長してこれらの変更に対応することです。

コード
                            
コピー
埋め込み
gantt title A Gantt Diagram dateFormat YYYY-MM-DD excludes 2026-03-16,2026-03-18,2026-03-19 section Section A task :a1, 2026-03-07, 7d Another task :after a1, 5d

ただし、除外された日付が連続して開始する 2 つのタスクの間にある場合、除外された日付は図上でスキップされて空白になり、その後タスクは除外日付の終了後に開始されます。以下のとおりです:

コード
                            
コピー
埋め込み
gantt title A Gantt Diagram dateFormat YYYY-MM-DD excludes Sunday, Friday, Saturday section Section A task :a1, 2026-03-07, 5d Another task :after a1, 7d

ガントチャートはプロジェクトを完了するのに必要な時間を追跡するのに役立ちますが、いくつかの調整により、「非稼働日」をグラフィカルに表現するのにも使用できます。

構文

コード
                            
コピー
埋め込み
gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid excludes weekends %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) section A section Completed task :done, des1, 2026-01-06,2026-01-08 Active task :active, des2, 2026-01-09, 3d Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d section Critical tasks Completed task in the critical line :crit, done, 2026-01-06,24h Implement parser and jison :crit, done, after des1, 2d Create tests for parser :crit, active, 3d Future task in critical line :crit, 5d Create tests for renderer :2d Add to mermaid :until isadded Functionality added :milestone, isadded, 2026-01-25, 0d section Documentation Describe gantt syntax :active, a1, after des1, 3d Add gantt diagram to demo page :after a1 , 20h Add another diagram to demo page :doc1, after a1 , 48h section Last section Describe gantt syntax :after doc1, 3d Add gantt diagram to demo page :20h Add another diagram to demo page :48h

タスクはデフォルトで連続して行われ、次のタスクの開始日はデフォルトで前のタスクの終了日になります。

タスクのタイトルとそのメタデータはコロン(:)で区切られ、メタデータ項目間はコンマ(,)で区切られます。有効なラベルには active、done、crit、milestone があります。ラベルは任意ですが、使用する場合は最初に配置する必要があります。ラベルを処理した後、残りのメタデータ項目は次のように解釈されます:

  • 単一の項目を指定した場合、それがタスクの終了時期を決定します。具体的な日付や時刻、または期間にできます。期間を指定した場合、タスクの開始日に加算してタスクの終了日を決定し、除外を考慮します。
  • 2 つの項目を指定した場合、後の項目は前の場合と同じように解釈されます。最初の項目は、明確な開始日または時刻(形式は dateFormat で指定)を指定するか、after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...] で別のタスクを参照できます。後者の場合、タスクの開始日は、参照されたタスクの最も遅い終了日に基づいて設定されます。
  • 3 つの項目を指定した場合、最後の 2 つの項目は前の場合に従って解釈されます。最初の項目はタスクの ID を表し、later <taskID> 構文で参照できます。
メタデータ構文 開始日 終了日 ID
<taskID>, <startDate>, <endDate> dateformat を使用して解釈される startdate dateformat を使用して解釈される endDate taskID
<taskID>, <startDate>, <length> dateformat を使用して解釈される startdate 開始日 + length taskID
<taskID>, after <otherTaskId>, <endDate> 先に指定されたタスク otherTaskID の終了日 dateformat を使用して解釈される endDate taskID
<taskID>, after <otherTaskId>, <length> 先に指定されたタスク otherTaskID の終了日 開始日 + length taskID
<taskID>, <startDate>, until <otherTaskId> dateformat を使用して解釈される startdate 先に指定されたタスク otherTaskID の開始日 taskID
<taskID>, after <otherTaskId>, until <otherTaskId> 先に指定されたタスク otherTaskID の終了日 先に指定されたタスク otherTaskID の開始日 taskID
<startDate>, <endDate> dateformat を使用して解釈される startdate 使用 dateformat 解释的 enddate 該当なし
<startDate>, <length> dateformat を使用して解釈される startdate 開始日 + length 該当なし
after <otherTaskID>, <endDate> 先に指定されたタスク otherTaskID の終了日 使用 dateformat 解释的 enddate 該当なし
after <otherTaskID>, <length> 先に指定されたタスク otherTaskID の終了日 開始日 + length 該当なし
<startDate>, until <otherTaskId> dateformat を使用して解釈される startdate 先に指定されたタスク otherTaskID の開始日 該当なし
after <otherTaskId>, until <otherTaskId> 先に指定されたタスク otherTaskID の終了日 先に指定されたタスク otherTaskID の開始日 該当なし
<endDate> 前のタスクの終了日 使用 dateformat 解释的 enddate 該当なし
<length> 前のタスクの終了日 開始日 + length 該当なし
until <otherTaskId> 前のタスクの終了日 先に指定されたタスク otherTaskID の開始日 該当なし

期間の形式

<length> を指定する際は、数値の後に以下の単位サフィックスのいずれかを続けます:

単位 サフィックス 例
ミリ秒 ms 50ms
秒 s 30s
分 m 30m
時間 h 4h
日 d 7d
週 w 3w
月 m 2m
年 y 1y

10 進数の値(例えば、2.5d)もサポートします。無効な期間マーカー(例えば、3dX)は無視され、タスクはデフォルトで期間がゼロになります。

簡略化のため、この表では after 構文を使用して列挙された複数のタスクは示していません。以下は例です:

コード
                            
コピー
埋め込み
gantt apple :a, 2026-07-20, 1w banana :crit, b, 2026-07-23, 1d cherry :active, c, after b a, 1d kiwi :d, 2026-07-20, until b c

タイトル

title は任意の文字列で、ガントチャートの上部に表示され、図全体を説明するために使用されます。

除外

excludes は任意の属性で、特定の日付(YYYY-MM-DD 形式)、曜日(例えば "sunday")、または "weekends" を受け入れますが、"weekdays" という言葉は使用できません。これらの日付は図上にマークされ、タスクの期間の計算から除外されます。これは、タスクの持続期間に除外された日付が含まれる場合、除外された日数がタスクの終了時刻に加算され、タスクの期間がコードで指定されたものと一致することを保証することを意味します。

週末

週末を除外する場合、週末を金曜日と土曜日、または土曜日と日曜日に設定できます。デフォルトでは、週末は土曜日と日曜日です。週末の開始日を定義するには、新しい行に任意の属性 weekend を追加し、その後に friday または saturday を続けます。

コード
                            
コピー
埋め込み
gantt title A Gantt Diagram Excluding Fri - Sat weekends dateFormat Букмекерлар-MM-DD excludes weekends weekend friday section Section A task :a1, 2026-01-01, 30d Another task :after a1, 20d

セクションの宣言

図をセクションに分割し、プロジェクトの異なる部分(例えば開発とドキュメント)を分けることができます。

そのためには、行の先頭で section 構文を使用し、それに名前を付けます。図全体のタイトルとは異なり、この名前は必須であることに注意してください。

マイルストーン

図にマイルストーンを追加できます。マイルストーンは、特定の時点を表し、milestone 構文で識別されるため、タスクとは異なります。以下はマイルストーンを使用する例です:マイルストーンの正確な位置は、マイルストーンの開始日とタスクの期間によって決定されます。以下のとおりです:

コード
                            
コピー
埋め込み
gantt dateFormat HH:mm axisFormat %H:%M Initial milestone : milestone, m1, 17:49, 2m Task A : 10m Task B : 5m Final milestone : milestone, m2, 18:08, 4m

垂直マーカー

vert は、ガントチャートに垂直線を追加して、締め切り、重要なイベント、チェックポイントなどの重要な日付を簡単にハイライトすることを表します。これらのマーカーは図全体に伸び、指定した日付に基づいて配置されます。マイルストーンとは異なり、垂直マーカーは 1 行を占有しません。これらは純粋に視覚的な参照点で、タイムラインを分割し、重要な瞬間をより識別しやすくするのに役立ちます。

コード
                            
コピー
埋め込み
gantt dateFormat HH:mm axisFormat %H:%M Initial vert : vert, v1, 17:30, 2m Task A : 3m Task B : 8m Final vert : vert, v2, 17:58, 4m

日付を設定する

dateFormat はガントチャート要素の日付入力形式を定義し、axisFormat は図をレンダリングする際の日付出力形式を定義します。

入力日付形式

デフォルトの入力日付形式は YYYY-MM-DD で、dateFormat をカスタマイズできます。

                            
コピー
埋め込み
dateFormat YYYY-MM-DD

以下の形式オプションをサポートします:

输入 例 説明
YYYY 2026 4 桁の年
YY 26 2 桁の年
Q 1..4 四半期の数値
M MM 1..12 月の数値
D DD 1..31 月内の日
Do 1st..31st 序数付きの月内の日
DDD DDDD 1..365 年内の日
X 1410715640.579 Unix タイムスタンプ
x 1410715640579 Unix ミリ秒タイムスタンプ
H HH 0..23 24 時間制の時刻
h hh 1..12 12 時間制の時刻、a A と組み合わせて使用
a A am pm 午前または午後
m mm 0..59 分
s ss 0..59 秒数
S 0..9 10 分の 1 秒
SS 0..99 100 分の 1 秒
SSS 0..999 1000 分の 1 秒
Z ZZ +12:00 UTC とのオフセット、形式は +-HH:mm、+-HHmm、または Z

座標軸の日付出力形式

デフォルトの日付出力形式は YYYY-MM-DD です。axisFormat をカスタマイズできます。例えば 2026-Q1 は 2026 年の第 1 四半期を表します。

                            
コピー
埋め込み
axisFormat %Y-%m-%d

以下の形式文字列をサポートします:

形式,定義
%a 曜日の略称
%A 曜日の完全な名前
%b 月の略称
%B 月の完全な名前
%c ローカライズされた日付と時刻
%d 日、10 進数 [01,31]
%e 日、スペースで埋められた 10 進数 [1,31]、%_d に相当します
%H 時(24 時間制)、10 進数 [00,23]
%I 時(12 時間制)、10 進数 [01,12]
%j 年内の通算日、10 進数 [001,366]
%m 月、10 進数 [01,12]
%M 分、10 進数 [00,59]
%L ミリ秒、10 進数 [000, 999]
%p 午前または午後
%S 秒、10 進数 [00,59]
%U 年内の通算週(日曜日を週の初日とする)、10 進数 [00,53]
%w 曜日、スペースで埋められた 10 進数 [0,6]、ここで 0 は日曜日を表します
%W 年内の通算週(月曜日を週の初日とする)、10 進数 [00,53]
%x ローカライズされた日付表現、例:2026-09-18
%X ローカライズされた時刻表現、例:14:30:00
%y 世紀なしの年、10 進数 [00,99]、例えば 26 は 2026 年を表します
%Y 世紀付きの年、10 進数
%Z タイムゾーン名の略称、例えば "-0700"
%% エスケープ文字、パーセント記号 % 自体を表示するために使用します

軸の目盛り

デフォルトの出力目盛りは自動です。tickInterval をカスタマイズできます。例えば 1day や 1week などです。

                            
コピー
埋め込み
tickInterval 1day

モードは

                            
コピー
埋め込み
/^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/;

週ベースの tickInterval はデフォルトで日曜日から始まります。tickInterval が開始する他の曜日を指定したい場合は、weekday オプションを使用します。コードは以下のとおりです:

コード
                            
コピー
埋め込み
gantt tickInterval 1week weekday monday

コンパクトモード出力

コンパクトモードでは、複数のタスクを同じ行に表示できます。先ほどの YAML 設定で図の表示モードを制御し、ガントチャートのコンパクトモードを有効にします。

コード
                            
コピー
埋め込み
--- displayMode: compact --- gantt title A Gantt Diagram dateFormat YYYY-MM-DD section Section A task :a1, 2026-01-01, 30d Another task :a2, 2026-01-20, 25d Another one :a3, 2026-02-10, 20d

ガントチャートにコメントを入力でき、パーサーはそのコメントを無視します。コメントは単独の行にする必要があり、%%(二重パーセント記号)で始まる必要があります。コメントが始まってから次の改行文字までのすべてのテキストは、あらゆる図の構文を含めてコメントと見なされます。

コード
                            
コピー
埋め込み
gantt title A Gantt Diagram %% This is a comment dateFormat YYYY-MM-DD section Section A task :a1, 2014-01-01, 30d Another task :after a1, 20d section Another Task in Another :2014-01-12, 12d another task :24d

今日のマーカー

現在の日付のマーカーにスタイルを設定するか、そのマーカーを非表示にできます。スタイルを設定するには、todayMarker キーに値を追加します。

                            
コピー
埋め込み
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

マーカーを非表示にするには、todayMarker を off に設定します。

                            
コピー
埋め込み
todayMarker off

例

棒ガントチャート

コード
                            
コピー
埋め込み
gantt title Git Issues - days since last update dateFormat X axisFormat %s section Issue19062 71 : 0, 71 section Issue19401 36 : 0, 36 section Issue193 34 : 0, 34 section Issue7441 9 : 0, 9 section Issue1300 5 : 0, 5

タイムライン(コメント、CSS、フロントマター構成を含む)

コード
                            
コピー
埋め込み
--- # Frontmatter config, YAML comments title: Ignored if specified in chart displayMode: compact #gantt specific setting but works at this level too config: # theme: forest # themeCSS: " #item36 { fill: CadetBlue } " themeCSS: " // YAML supports multiline strings using a newline markers: #item36 { fill: CadetBlue } // Custom marker workaround CSS from forum (below) rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } text[id^=workaround] { fill: red; y: 100%; font-size: 15px;} " gantt: useWidth: 400 rightPadding: 0 topAxis: true #false numberSectionStyles: 2 --- gantt title Timeline - Gantt Sampler dateFormat YYYY axisFormat %y %% this next line doesn't recognise 'decade' or 'year', but will silently ignore tickInterval 1decade section Issue19062 71 : item71, 1900, 1930 section Issue19401 36 : item36, 1913, 1935 section Issue1300 94 : item94, 1910, 1915 5 : item5, 1920, 1925 0 : milestone, item0, 1918, 1s 9 : vert, 1906, 1s %% not yet official 64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250