Добавление меток с множеством точек данных, близких друг к другу - PullRequest
1 голос
/ 04 июня 2019

Я хочу добавить метки рядом с точками данных. Я знаю, что на этом сайте несколько раз отвечали, и текстовая функция прекрасно работает, но есть ли другой прием, который я могу использовать с базовыми функциями R, чтобы сделать метки видимыми, когда существует много перекрывающихся точек данных? Ниже приведен пример данных, нанесенных с помощью числовых меток, но большинство из них невозможно различить.

разброс точек:

enter image description here

1 Ответ

3 голосов
/ 04 июня 2019

Предположим, у вас есть:

library(gapminder); library(ggplot2)
ggplot(gapminder[gapminder$year == 2007,],
        aes(gdpPercap, lifeExp, label = country)) +
  geom_text(check_overlap = T)

enter image description here Несколько распространенных приемов при переполнении текста:

1) если вы не возражаете, пропустите их,используйте check_overlap:

ggplot(gapminder[gapminder$year == 2007,],
        aes(gdpPercap, lifeExp, label = country)) +
  geom_text(check_overlap = T)

enter image description here

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)

enter image description here

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()

С и без выборки:

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...