Предположим, у вас есть:
library(gapminder); library(ggplot2)
ggplot(gapminder[gapminder$year == 2007,],
aes(gdpPercap, lifeExp, label = country)) +
geom_text(check_overlap = T)
Несколько распространенных приемов при переполнении текста:
1) если вы не возражаете, пропустите их,используйте check_overlap:
ggplot(gapminder[gapminder$year == 2007,],
aes(gdpPercap, lifeExp, label = country)) +
geom_text(check_overlap = T)
2) ggrepel
* geom_text_repel
будет итеративно подталкивать текст, чтобы уменьшить / устранить наложения.В этом случае количество точек настолько велико, что мне пришлось уменьшить шрифт, чтобы он вообще работал.
ggplot(gapminder[gapminder$year == 2007,],
aes(gdpPercap, lifeExp, label = country)) +
ggrepel::geom_text_repel(size = 2, box.padding = 0.01)
3) ЕслиВы строите график вдоль линии, вы можете регулярно выбирать точки:
set.seed(1)
df <- data.frame(x = 1:100, y0 = runif(100))
df$y = cumsum(df$y0)
ggplot(df[ c(rep(FALSE,4), TRUE), ], # sample every 5th row. otherwise: ggplot(df,
aes(x, y, label = y)) +
geom_text()
С и без выборки: