Stacked bar charts compare different areas by the height of their representative segments. If you rotate your chart so that the bars are on the horizontal axis, you will usually get more space for them. Each bar will be longer, and the smaller segments will be much easier to read.
To rotate a chart in ggplot2, add
coord_flip() to your chart. It looks like this:
plot + coord_flip()
To make more space for the bars, change the position of the legend:
+ theme(legend.position = "top")
The legend will be shown at the top of the chart. To ensure the colors in the legend are shown in the same order as they are on the bars, use this command:
+ guides(fill = guide_legend(reverse = T))