Movatterモバイル変換


[0]ホーム

URL:


EngineeringSoftwareDesign
Ganttscheduling

Description

The code defines a Gantt chart using thepgfgantt package. The Gantt chart visualizes a schedule of tasks that run on a single CPU, with some tasks requiring I/O and others not. The chart is defined in aganttchart environment, with various options set for the appearance of the chart. The chart is divided into units of 0.35cm for the x-axis and 1.4cm for the y-axis. The chart has vertical gray lines every unit and bars are drawn inline with no group borders. The y-axis titles are set to a height of 0.5cm.

The Gantt chart displays a total of 32 units of time, with the time intervals labeled on the top of the chart. There are two groups of tasks displayed: CPU and I/O. The CPU tasks are colored in red, green, and blue, and the I/O tasks are colored in red and green. Some tasks are followed by a number in parentheses that indicates the time duration of the task.

There are three processes represented on the chart:P_1P\_1,P_2P\_2, andP_3P\_3. Each process is represented by a series of bars with different colors representing the different phases of the process. The chart indicates the times when the processes are executing, waiting for I/O, or in an idle state. There are also three instances of a milestone represented on the chart with a small dot and a label on the left.

Keywords

tikz, documentclass, usepackage, begin, center, tikzpicture, draw, node, circle, fill, edge, path, right, left, above, below, label, style

Source Code

EngineeringSoftwareDesign

\documentclass{standalone}\usepackage{pgfgantt}\definecolor{blue}{HTML}{74BBC9}\definecolor{yellow}{HTML}{F7E967}\definecolor{green}{HTML}{7CFC00}% lawn green\definecolor{red}{HTML}{FF6347}% tomato\begin{document}%\begin{figure}\begin{ganttchart}[x unit=0.35cm,y unit chart=1.4cm,canvas/.style={draw=none,fill=none},% remove canvas borders, etcvgrid={*1{draw=black!12}},% vertical gray lines every unitinline,% draw bars inlinegroup/.style={draw=none,fill=none},% remove group borders, etcbar top shift=0.1,% give bar 10% padding top/bottombar height=0.8,% bar size 80% of vertical spacey unit title=0.5cm,% crop titles a little smallertitle/.style={draw=none,fill=none},% remove title borders, etcinclude title in canvas=false,% no vertical grid in titlemilestone inline label node/.append style={left=5mm}% see if I can include milestones]{-1}{32}\gantttitle{0}{3}\gantttitle{4}{4}\gantttitle{8}{4}\gantttitle{12}{4}\gantttitle{16}{4}\gantttitle{20}{4}\gantttitle{24}{4}\gantttitle{28}{4}\gantttitle{32}{4}\\% Note that 2 units = 4 in the diagram\ganttgroup[inline=false]{CPU}{0}{1}\ganttbar[bar/.style={fill=red}]{$P_1$4}{0}{3}\ganttbar[bar/.style={fill=green}]{$P_2\mid$5}{4}{8}\ganttbar[bar/.style={fill=red}]{$P_1\mid$4}{9}{12}\ganttbar[bar/.style={fill=green}]{$P_2\mid$5}{13}{17}\ganttbar[bar/.style={fill=red}]{$P_1\mid$4}{18}{21}\ganttbar[bar/.style={fill=blue}]{\tiny{$P_3\mid$2}}{22}{23}\ganttbar[bar/.style={fill=white}]{\tiny {IDLE}}{24}{25}\ganttbar[bar/.style={fill=blue}]{\tiny{$P_3\mid$2}}{26}{27}\ganttbar[bar/.style={fill=white}]{\tiny {IDLE}}{28}{29}\ganttbar[bar/.style={fill=blue}]{\tiny{$P_3\mid$2}}{30}{31}\\%\ganttmilestone{$T_4-16 =8$}{18}\ganttgroup[inline=false]{I/O}{0}{1}\ganttbar[bar/.style={fill=red}]{\tiny{$P_1\mid$2}}{4}{5}\ganttbar[bar/.style={fill=white}]{\tiny{IDLE}}{6}{8}\ganttbar[bar/.style={fill=green}]{\tiny{$P_2\mid$2}}{9}{10}\ganttbar[bar/.style={fill=white}]{\tiny{IDLE}}{11}{12}\ganttbar[bar/.style={fill=red}]{\tiny{$P_1\mid$2}}{13}{14}\ganttbar[bar/.style={fill=white}]{\tiny{IDLE}}{15}{23}\ganttbar[bar/.style={fill=blue}]{\tiny{$P_3\mid$2}}{24}{25}\ganttbar[bar/.style={fill=white}]{\tiny{IDLE}}{26}{27}\ganttbar[bar/.style={fill=blue}]{\tiny{$P_3\mid$2}}{28}{29}%\ganttbar[bar/.style={fill=blue}]{2}{2}{5}%\ganttbar[bar/.style={fill=yellow}]{6}{6}{8}%\ganttbar[bar/.style={fill=white}]{IDLE}{25}{29}%\ganttgroup[inline=false]{$T_{2,1}$}{0}{1}%\ganttbar[bar/.style={fill=blue}]{1}{0}{1}%\ganttbar[bar/.style={fill=yellow}]{7}{9}{11} \\%\ganttgroup[inline=false]{$T_{3,1}$}{0}{1}%\ganttbar[bar/.style={fill=yellow}]{4}{0}{2}\node (a) [fill=blue,draw,anchor=south] at (current bounding box.north){$P_3$};\node (b) [fill=green,draw,anchor=south] at ([xshift=-30pt]a.south west){$P_2$};\node (c) [fill=red,draw,anchor=south] at ([xshift=-30pt]b.south west){$P_1$};\node (legend) [fill=white,draw,anchor=south] at ([xshift=-30pt]c.south west){Legend:};%\node[fill=purple,draw,anchor=west] at ([yshift=-20pt]d.south west){Box North East};\end{ganttchart}%\caption{A flexible job shop schedule}%\label{fig:schedule}%\end{figure}\end{document}
Deploy to Overleaf
FlowchartGitworkflow

[8]ページ先頭

©2009-2025 Movatter.jp