# Plotting a Gantt Chart from a Matrix

123 views (last 30 days)
Alaa Al-Saffar on 8 Dec 2017
Answered: Alexis Wang on 30 Aug 2022
Hello,
I plotted this gantt chart in excel using this table.
The Gantt Chart looked like this
To remove the gaps durations, I used the legend to de-colored them, remove the boarders and remove them.
Now, I would like to plot the same gantt chart in Matlab using the following command:
barh(Positions,Gap_Duration,'stacked');
where:
Positions=[1,2,3,4];
Gap_Duration=[0,2,5,3,5,3;
3,5,3,5,3,4;
9,3,0,0,12,2;
13,2,2,2,8,3];
However, I want to change the color for every job duration (every even column at the Gap_Duration Matrix) and No-Color & No-Boarder for every gap duration (every odd column at the Gap_Duration Matrix).
Note: this only a simple example, I am dealing with a Gap_Duration Matrix with a size of (60,55*2),
60 positions and 55 jobs with their 55 gaps. where each job should have its own color or at least every 8-10 jobs have different color.
I already did the code for obtaining the Gap_Duration Matrix.

Jos (10584) on 8 Dec 2017
Use graphic handles to manipulate the graph:
Positions=[1,2,3,4];
Gap_Duration=[0,2,5,3,5,3;
3,5,3,5,3,4;
9,3,0,0,12,2;
13,2,2,2,8,3];
H = barh(Positions,Gap_Duration,'stacked')
set(H([1 3 5]),'Visible','off')
##### 2 CommentsShowHide 1 older comment
Jos (10584) on 14 May 2018
Whenever Matlab plots something it creates a handle to the plotted object. You can manipulate these objects by setting its properties using the handles. In the example above, H is a array of handles to bar elements (see the documentation of barh). The command sets the property "visible" to off for three of them.

Alexis Wang on 30 Aug 2022
If it helps, I just published a custom Gantt chart for anyone to use and download on File Exchange here: https://www.mathworks.com/matlabcentral/fileexchange/116970-gantt-chart?s_tid=srchtitle. If you have any questions or feedback, feel free to let me know!