ggrepel
provides geoms for ggplot2 to repel overlapping text labels.
library(ggplot2)
library(ggrepel)
ggplot(mtcars, aes(wt, mpg)) +
geom_point(color = 'red') +
geom_text_repel(aes(label = rownames(mtcars))) +
theme_classic(base_size = 16)
See the vignette for more usage examples.
Also, look at the help pages:
?geom_text_repel
?geom_label_repel
Install the latest stable release from CRAN:
install.packages("ggrepel")
Alternatively, install the latest development version from github:
install.packages("devtools")
devtools::install_github("slowkow/ggrepel")
Please submit an issue to report bugs or ask questions.
Please contribute bug fixes or new features with a pull request to this repository.
This package is an attempt to make direct labeling a reality in everyday statistical practice by making available a body of useful functions that make direct labeling of common plots easy to do with high-level plotting systems such as lattice and ggplot2. The main function that the package provides is direct.label(p), which takes a lattice or ggplot2 plot p and adds direct labels.
Pretty word clouds.
The wordcloud
package implements a spiraling algorithm to prevent text
labels from overlapping each other.
Force field simulation of interaction of set of points. Very useful for placing text labels on graphs, such as scatterplots.
I found that functions in the FField
package were not ideal for repelling
overlapping rectangles, so I wrote my own.
See this gist for examples of how to use the wordcloud
and FField
packages with ggplot2
.