I need to make a good bar chart based on the table below (the number of nodes with its probability of falling correspond to each **OF**): [![Table of data][1]][1] Thanks to **kglr** I got the necessary BarChart: data14GAOF = {{33/36, 3/36}, {11/36, 25/36}, {27/36, 8/36, 1/36}, {14/36, 22/36}, {13/36, 10/36, 2/36, 1/36, 1/36, 1/36, 2/36, 4/36, 1/36, 1/36}, {8/36, 16/36, 8/36, 4/36}}; labels14GAOF = Style[#, FontSize -> 18, White] & /@ {"node 4", "node 9", "node 7", "node 3", "node 5", "node 6", "node 8", "node 10", "node 11", "node 13"}; grouplabels14GAOF = Style[#, Black, Bold, FontSize -> 18] & /@ {"OF1(N-1)", "OF1", "OF2(N-1)", "OF2", "OF3(N-1)", "OF3"}; labeleddata14GAOF = Labeled[##, Axis] & @@@ Transpose[{SortBy[-First[#] &] /@ (MapIndexed[ Labeled[#, labels14GAOF[[#2[[1]]]], Center] &, #] & /@ data14GAOF), grouplabels14GAOF}]; BarChart[labeleddata14GAOF, ChartStyle -> {GrayLevel[0.1], GrayLevel[0.2], GrayLevel[0.3], GrayLevel[0.4], GrayLevel[0.5], GrayLevel[0.6], GrayLevel[0.65], GrayLevel[0.7], GrayLevel[0.75], GrayLevel[0.8],}, ChartLayout -> "Stacked", ImageSize -> 900, AxesStyle -> Directive[Black, 24], BarSpacing -> {0, 0.8}] But, unfortunately, I didn't take something into account and, as a result, BarChart looks like (there is a mismatch in the last column which I marked): [![enter image description here][2]][2] There is a strong likelihood that I chose inappropriate way to visualize and represent results. Two questions - What I have to do in order to get the right labels? - How to make the columns closer to each other in accordance with the grouping (group OF1, group OF2, group OF3). ________________________________________________________________________________ Thanks for help **m_goldberg**! Following your advice I tried to add my barchart: data14GA = {{33/36, 3/36}, {11/36, 25/36}, {27/36, 1/36, 8/36}, {14/36, 22/36}, {1/36, 13/36, 1/36, 1/36, 2/36, 2/36, 10/36, 4/36, 1/36, 1/36}, {8/36, 8/36, 16/36, 4/36}}; labels14GA = {{"node 4", "node 9"}, {"node 4", "node 9"}, {"node 4", "node 7", "node 9"}, {"node 4", "node 9"}, {"node 3", "node 4", "node 5", "node 6", "node 7", "node 8", "node 9", "node 10", "node 11", "node 13"}, {"node 4", "node 5", "node 9", "node 11"}}; grouplabels14GA = Style[#, Black, Bold, FontSize -> 18] & /@ {"OF1(N-1)", "OF1", "OF2(N-1)", "OF2", "OF3(N-1)", "OF3"}; labeleddata14GA = MapThread[ Labeled[#1, #2, Axis] &, {SortBy[-First[#] &] /@ Apply[Labeled[#1, Style[#2, FontSize -> 16, White], Center] &, Transpose /@ Transpose[{data14GA, labels14GA}], {2}], grouplabels14GA}]; data14MOPSO = {{60/80, 20/80}, {23/40, 17/40}, {74/80, 4/80, 2/80}, {16/40, 24/40}, {8/80, 4/80, 7/80, 24/80, 3/80, 16/80, 4/80, 2/80, 12/80}, {3/40, 4/40, 1/40, 6/40, 4/40, 1/40, 21/40}}; labels14MOPSO = {{"node 9", "node 4"}, {"node 4", "node 9"}, {"node 9", "node 4", "node 7"}, {"node 4", "node 9"}, {"node 9", "node 4", "node 7", "node 3", "node 5", "node 10", "node 11", "node 13", "node 14"}, {"node 3", "node 4", "node 5", "node 9", "node 10", "node 11", "node 14"}}; grouplabels14MOPSO = Style[#, Black, Bold, FontSize -> 18] & /@ {"OF1(N-1)", "OF1", "OF2(N-1)", "OF2", "OF3(N-1)", "OF3"}; labeleddata14MOPSO = MapThread[ Labeled[#1, #2, Axis] &, {SortBy[-First[#] &] /@ Apply[Labeled[#1, Style[#2, FontSize -> 16, White], Center] &, Transpose /@ Transpose[{data14MOPSO, labels14MOPSO}], {2}], grouplabels14MOPSO}]; BarChart[{labeleddata14GA, labeleddata14MOPSO}, ChartStyle -> {GrayLevel[0.1], GrayLevel[0.2], GrayLevel[0.3], GrayLevel[0.4], GrayLevel[0.5], GrayLevel[0.6], GrayLevel[0.65], GrayLevel[0.7], GrayLevel[0.75], GrayLevel[0.8]}, ChartLayout -> "Stacked", AxesStyle -> Directive[Black, 24], BarSpacing -> {Automatic, .3}, ImageSize -> 800] But it turned out incorrect (problem with the Bar dataset) and I tried another way: data14GAMOPSO = {{33/36, 3/36}, {11/36, 25/36}, {27/36, 1/36, 8/36}, {14/36, 22/36}, {1/36, 13/36, 1/36, 1/36, 2/36, 2/36, 10/36, 4/36, 1/36, 1/36}, {8/36, 8/36, 16/36, 4/36}, {60/80, 20/80}, {23/40, 17/40}, {74/80, 4/80, 2/80}, {16/40, 24/40}, {8/80, 4/80, 7/80, 24/80, 3/80, 16/80, 4/80, 2/80, 12/80}, {3/40, 4/40, 1/40, 6/40, 4/40, 1/40, 21/40}}; labels14GAMOPSO = {{"node 4", "node 9"}, {"node 4", "node 9"}, {"node 4", "node 7", "node 9"}, {"node 4", "node 9"}, {"node 3", "node 4", "node 5", "node 6", "node 7", "node 8", "node 9", "node 10", "node 11", "node 13"}, {"node 4", "node 5", "node 9", "node 11"}, {"node 9", "node 4"}, {"node 4", "node 9"}, {"node 9", "node 4", "node 7"}, {"node 4", "node 9"}, {"node 9", "node 4", "node 7", "node 3", "node 5", "node 10", "node 11", "node 13", "node 14"}, {"node 3", "node 4", "node 5", "node 9", "node 10", "node 11", "node 14"}}; grouplabels14GAMOPSO = Style[#, Black, Bold, FontSize -> 18] & /@ {"OF1(N-1)", "OF1", "OF2(N-1)", "OF2", "OF3(N-1)", "OF3", "OF1(N-1)", "OF1", "OF2(N-1)", "OF2", "OF3(N-1)", "OF3"}; labeleddata14GAMOPSO = MapThread[ Labeled[#1, #2, Axis] &, {SortBy[-First[#] &] /@ Apply[Labeled[#1, Style[#2, FontSize -> 16, White], Center] &, Transpose /@ Transpose[{data14GAMOPSO, labels14GAMOPSO}], {2}], grouplabels14GAMOPSO}]; BarChart[labeleddata14GAMOPSO, ChartStyle -> {GrayLevel[0.1], GrayLevel[0.2], GrayLevel[0.3], GrayLevel[0.4], GrayLevel[0.5], GrayLevel[0.6], GrayLevel[0.65], GrayLevel[0.7], GrayLevel[0.75], GrayLevel[0.8]}, ChartLayout -> "Stacked", AxesStyle -> Directive[Black, 24], BarSpacing -> {Automatic, .3}, ImageSize -> 1500] [![new barchart][3]][3] It is correct but it would be better to sowehow group the columns. In other words to separate the columns [OF1(N-1)+OF1], [OF2(N-1)+OF2], [OF3(N-1)+OF3] from each other a bit because they represent different functions. Two questions: - How does it can be realised? - Is it possible to make a space between groups of labeleddata14GA and labeleddata14MOPSO as well? [1]: https://i.sstatic.net/PLUWE.png [2]: https://i.sstatic.net/AO9V4.png [3]: https://i.sstatic.net/f0aPv.png