Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

Gantt-kaavioSyntaksi

Gantt-kaavio

Gantt-kaavio on pylväskaavio, jota käytetään näyttämään projektin edistymistä ja aikaa, joka tarvitaan projektin valmiiksi saattamiseen. Gantt-kaavio näyttää päivien määrän projektin päätöselementtien ja yhteenvetoelementtien aloitus- ja päättymispäivien välillä.

Huomioitavaa

Gantt-kaaviossa jokainen suunniteltu tehtävä merkitään vasemmalta oikealle ulottuvaksi yhtenäiseksi palkiksi. x-akseli edustaa aikaa ja y-akseli tallentaa eri tehtävät ja niiden suoritusjärjestyksen.

Mikä vielä tärkeämpää, kun tehtävän päivämäärä, päivien määrä tai tietty päivämääräjoukko suljetaan pois, Gantt-kaavio mukautuu näihin muutoksiin pidentämällä saman päivämäärän verran oikealle sen sijaan, että se loihtisi aukon tehtävän sisään .

Koodi
                            
Kopioi
Upotus
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

Jos poissuljetut päivämäärät ovat kuitenkin kahden peräkkäin alkavan tehtävän välissä, poissuljetut päivämäärät ohitetaan kaaviossa ja jätetään tyhjiksi, minkä jälkeen tehtävä alkaa poissuljettujen päivämäärien päätyttyä. Kuten alla näkyy:

Koodi
                            
Kopioi
Upotus
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-kaavio on hyödyllinen projektin valmiiksi saamiseen kuluvan ajan seuraamisessa, mutta sitä voidaan hienoisin muutoksin käyttää myös "vapaapäivien" graafiseen esittämiseen.

Syntaksi

Koodi
                            
Kopioi
Upotus
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

Tehtävät ovat oletuksena peräkkäisiä, ja seuraavan tehtävän aloituspäivä on oletuksena edellisen tehtävän päättymispäivä.

Tehtävän nimi ja sen metatiedot erotetaan kaksoispisteellä (:) ja metatietokohteet pilkulla (,). Kelvollisia merkintöjä ovat active, done, crit ja milestone. Merkinnät ovat valinnaisia, mutta jos niitä käytetään, ne on sijoitettava ensimmäiseksi. Kun merkinnät on käsitelty, loput metatietokohteet tulkitaan seuraavasti:

  • Jos määritetään yksi kohde, se määrittää, milloin tehtävä päättyy. Se voi olla tietty päivämäärä tai aika taikka kesto. Jos määritetään kesto, se lisätään tehtävän aloituspäivään tehtävän päättymispäivän määrittämiseksi, kun mahdolliset poissulkemiset otetaan huomioon.
  • Jos määritetään kaksi kohdetta, jälkimmäinen kohde tulkitaan samalla tavalla kuin edellisessä tapauksessa. Ensimmäinen kohde voi määrittää selkeän aloituspäivämäärän tai -ajan (muoto määritetään dateFormat-asetuksella) tai viitata toiseen tehtävään muodossa after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...]. Jälkimmäisessä tapauksessa tehtävän aloituspäivä asetetaan viitattujen tehtävien myöhäisimmän päättymispäivän mukaan.
  • Jos määritetään kolme kohdetta, kaksi viimeistä kohdetta tulkitaan edellisen tapauksen mukaisesti. Ensimmäinen kohde edustaa tehtävän tunnistetta, ja siinä voidaan viitata later <taskID> -syntaksilla.
Metatietojen syntaksi Aloituspäivä Päättymispäivä ID
<taskID>, <startDate>, <endDate> startdate tulkittuna dateformat-muodolla endDate tulkittuna dateformat-muodolla taskID
<taskID>, <startDate>, <length> startdate tulkittuna dateformat-muodolla Aloituspäivä + length taskID
<taskID>, after <otherTaskId>, <endDate> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä endDate tulkittuna dateformat-muodolla taskID
<taskID>, after <otherTaskId>, <length> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä Aloituspäivä + length taskID
<taskID>, <startDate>, until <otherTaskId> startdate tulkittuna dateformat-muodolla Aiemmin määritetyn tehtävän otherTaskID aloituspäivä taskID
<taskID>, after <otherTaskId>, until <otherTaskId> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä Aiemmin määritetyn tehtävän otherTaskID aloituspäivä taskID
<startDate>, <endDate> startdate tulkittuna dateformat-muodolla 使用 dateformat 解释的 enddate Ei sovellettavissa
<startDate>, <length> startdate tulkittuna dateformat-muodolla Aloituspäivä + length Ei sovellettavissa
after <otherTaskID>, <endDate> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä 使用 dateformat 解释的 enddate Ei sovellettavissa
after <otherTaskID>, <length> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä Aloituspäivä + length Ei sovellettavissa
<startDate>, until <otherTaskId> startdate tulkittuna dateformat-muodolla Aiemmin määritetyn tehtävän otherTaskID aloituspäivä Ei sovellettavissa
after <otherTaskId>, until <otherTaskId> Aiemmin määritetyn tehtävän otherTaskID päättymispäivä Aiemmin määritetyn tehtävän otherTaskID aloituspäivä Ei sovellettavissa
<endDate> Edellisen tehtävän päättymispäivä 使用 dateformat 解释的 enddate Ei sovellettavissa
<length> Edellisen tehtävän päättymispäivä Aloituspäivä + length Ei sovellettavissa
until <otherTaskId> Edellisen tehtävän päättymispäivä Aiemmin määritetyn tehtävän otherTaskID aloituspäivä Ei sovellettavissa

Keston muoto

Määritettäessä <length> käytetään numeroa, jota seuraa yksi seuraavista yksikköpäätteistä:

Yksikkö Pääte Esimerkki
Millisekunti ms 50ms
Sekunti s 30s
Minuutti m 30m
Tunti h 4h
Päivä d 7d
Viikko w 3w
Kuukausi m 2m
Vuosi y 1y

Myös desimaaliarvoja tuetaan (esimerkiksi 2.5d). Virheelliset kestomerkinnät (esimerkiksi 3dX) jätetään huomiotta, ja tehtävän kestoksi tulee oletuksena nolla.

Yksinkertaisuuden vuoksi taulukko ei näytä useita after-syntaksilla lueteltuja tehtäviä. Seuraavassa on esimerkki:

Koodi
                            
Kopioi
Upotus
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

Otsikko

title on valinnainen merkkijono, joka näytetään Gantt-kaavion yläosassa ja kuvaa koko kaaviota.

Poissulkeminen

excludes on valinnainen ominaisuus, joka hyväksyy tietyn päivämäärän (muodossa YYYY-MM-DD), viikonpäivän (esimerkiksi "sunday") tai "weekends", mutta sanaa "weekdays" ei voi käyttää. Nämä päivämäärät merkitään kaavioon ja jätetään pois tehtävän keston laskennasta. Tämä tarkoittaa, että jos tehtävän kesto sisältää poissuljettuja päivämääriä, poissuljetut päivät lisätään tehtävän päättymisaikaan, jotta tehtävän kesto vastaa koodissa määritettyä.

Viikonloppu

Viikonloppuja poissuljettaessa viikonlopuksi voidaan asettaa perjantai ja lauantai tai lauantai ja sunnuntai. Oletuksena viikonloppu on lauantai ja sunnuntai. Viikonlopun alkupäivän määrittämiseksi voit lisätä uudelle riville valinnaisen ominaisuuden weekend ja sen perään friday tai saturday.

Koodi
                            
Kopioi
Upotus
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

Osan määrittely

Voit jakaa kaavion osiin erottaaksesi projektin eri osat (esimerkiksi kehitys ja dokumentointi) toisistaan.

Tätä varten käytä rivin alussa section-syntaksia ja anna sille nimi. Huomaa, että toisin kuin koko kaavion otsikko, tämä nimi on pakollinen.

Virstanpylväs

Voit lisätä kaavioon virstanpylväitä. Virstanpylväät eroavat tehtävistä siten, että ne edustavat tiettyä ajankohtaa, ja ne tunnistetaan milestone-syntaksilla. Seuraavassa on esimerkki virstanpylväiden käytöstä: virstanpylvään tarkka sijainti määräytyy virstanpylvään aloituspäivän ja tehtävän keston perusteella, kuten alla näkyy:

Koodi
                            
Kopioi
Upotus
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

Pystymerkki

vert tarkoittaa pystyviivan lisäämistä Gantt-kaavioon tärkeiden päivämäärien, kuten määräaikojen, tärkeiden tapahtumien tai tarkistuspisteiden, korostamiseksi helposti. Nämä merkit ulottuvat koko kaavion läpi ja sijoitetaan antamiesi päivämäärien mukaan. Toisin kuin virstanpylväät, pystymerkit eivät vie riviä. Ne ovat puhtaasti visuaalisia viitepisteitä, jotka auttavat jaksottamaan aikajanaa ja tekevät tärkeistä hetkistä helpommin tunnistettavia.

Koodi
                            
Kopioi
Upotus
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

Aseta päivämäärä

dateFormat määrittää Gantt-kaavion elementtien päivämäärän syöttömuodon, ja axisFormat määrittää päivämäärän tulostusmuodon kaaviota renderöitäessä.

Syöttöpäivämäärän muoto

Oletusarvoinen syöttöpäivämäärän muoto on YYYY-MM-DD; voit mukauttaa dateFormat-asetusta.

                            
Kopioi
Upotus
dateFormat YYYY-MM-DD

Seuraavia muotovaihtoehtoja tuetaan:

输入 Esimerkki Kuvaus
YYYY 2026 4-numeroinen vuosi
YY 26 2-numeroinen vuosi
Q 1..4 Neljännesvuoden numero
M MM 1..12 Kuukauden numero
D DD 1..31 Kuukauden päivä
Do 1st..31st Kuukauden päivä järjestyslukuna
DDD DDDD 1..365 Vuoden päivä
X 1410715640.579 Unix-aikaleima
x 1410715640579 Unix-millisekuntiaikaleima
H HH 0..23 24 tunnin aika
h hh 1..12 12 tunnin aika, käytetään yhdessä a A kanssa
a A am pm Aamu tai iltapäivä
m mm 0..59 Minuutti
s ss 0..59 Sekuntien määrä
S 0..9 Kymmenesosasekunti
SS 0..99 Sadasosasekunti
SSS 0..999 Tuhannesosasekunti
Z ZZ +12:00 Poikkeama UTC:stä muodossa +-HH:mm, +-HHmm tai Z

Koordinaattiakselin tulostuspäivämäärän muoto

Oletusarvoinen tulostuspäivämäärän muoto on YYYY-MM-DD. Voit mukauttaa axisFormat-asetusta, esimerkiksi 2026-Q1 tarkoittaa vuoden 2026 ensimmäistä neljännestä.

                            
Kopioi
Upotus
axisFormat %Y-%m-%d

Seuraavia muotomerkkijonoja tuetaan:

Muoto,Määritelmä
%a Viikonpäivän lyhennetty nimi
%A Viikonpäivän täydellinen nimi
%b Kuukauden lyhennetty nimi
%B Kuukauden täydellinen nimi
%c Lokalistoitu päivämäärä ja aika
%d Päivä, desimaaliluku [01,31]
%e Päivä, välilyönnillä täytetty desimaaliluku [1,31], vastaa %_d
%H Tunti (24 tunnin kello), desimaaliluku [00,23]
%I Tunti (12 tunnin kello), desimaaliluku [01,12]
%j Vuoden päivänumero, desimaaliluku [001,366]
%m Kuukausi, desimaaliluku [01,12]
%M Minuutti, desimaaliluku [00,59]
%L Millisekunti, desimaaliluku [000, 999]
%p Aamu tai iltapäivä
%S Sekunti, desimaaliluku [00,59]
%U Vuoden viikko (sunnuntai viikon ensimmäisenä päivänä), desimaaliluku [00,53]
%w Viikonpäivä, välilyönnillä täytetty desimaaliluku [0,6], jossa 0 edustaa sunnuntaita
%W Vuoden viikko (maanantai viikon ensimmäisenä päivänä), desimaaliluku [00,53]
%x Lokalistoitu päivämääräesitys, kuten: 2026-09-18
%X Lokalistoitu aikaesitys, kuten: 14:30:00
%y Vuosi ilman vuosisataa, desimaaliluku [00,99], esimerkiksi 26 tarkoittaa vuotta 2026
%Y Vuosi vuosisadan kanssa, desimaaliluku
%Z Aikavyöhykkeen nimen lyhenne, esimerkiksi "-0700"
%% Escape-merkki, jota käytetään prosenttimerkin % itsensä näyttämiseen

Akselin jako

Oletusarvoinen tulostusjako on automaattinen. Voit mukauttaa tickInterval-asetusta, esimerkiksi 1day tai 1week.

                            
Kopioi
Upotus
tickInterval 1day

Malli on

                            
Kopioi
Upotus
/^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/;

Viikkopohjainen tickInterval alkaa oletuksena sunnuntaista. Jos haluat määrittää toisen viikonpäivän, josta tickInterval alkaa, käytä weekday-vaihtoehtoa seuraavasti:

Koodi
                            
Kopioi
Upotus
gantt tickInterval 1week weekday monday

Kompaktin tilan tuloste

Kompakti tila sallii useiden tehtävien näyttämisen samalla rivillä. Kaavion näyttötilaa ohjataan edessä olevalla YAML-asetuksella, joka ottaa kompaktin tilan käyttöön Gantt-kaaviossa.

Koodi
                            
Kopioi
Upotus
--- 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-kaavioon voi syöttää kommentteja, jotka jäsentäjä jättää huomiotta. Kommentin on oltava omalla rivillään ja alettava merkinnällä %% (kaksoisprosenttimerkki). Kaikki teksti kommentin alusta seuraavaan rivinvaihtoon asti tulkitaan kommentiksi, mukaan lukien mahdollinen kaaviosyntaksi.

Koodi
                            
Kopioi
Upotus
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

Tämän päivän merkki

Voit tyylitellä nykyisen päivämäärän merkin tai piilottaa sen. Tylittelyä varten lisää arvo todayMarker-avaimeen.

                            
Kopioi
Upotus
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

Merkin piilottamiseksi aseta todayMarker arvoon off.

                            
Kopioi
Upotus
todayMarker off

Esimerkki

Pylväs-Gantt-kaavio

Koodi
                            
Kopioi
Upotus
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

Aikajana (sisältää kommentit, CSS:n ja edessä olevan kokoonpanon)

Koodi
                            
Kopioi
Upotus
--- # 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