ggrepel
epel overlapping text labels away from each other in your ggplot2
...When placing text labels on a plot (e.g. labeling points), the labels can often overlap; ggrepel ensures labels don’t overlap (or overlap less) by repelling labels / pushing them away, adding connecting lines or nudges, etc. It improves the readability of plots, especially when many labels are present. Support for point and segment geoms (so labels can be connected by lines when moved). Supports both plotting of labels inside or outside plot area, with trimming/clipping etc.