Переместить метки переменных в противоположные стороны - PullRequest
0 голосов
/ 09 февраля 2019

Я нигде не мог найти, как это сделать, поэтому подумал, что выложу решение сейчас, когда понял его.

Я создал простую диаграмму с метками на основе набора данных вдлинный формат (см. ниже для dat).Есть две строки и метки перекрываются.Я хотел бы переместить метки для верхнего графика и для нижнего графика вниз.

Original Chart

library(dplyr)
library(ggplot2)
library(tidyr)

# sample data
dat <- data.frame(
  x = seq(1, 10, length.out = 10),
  y1 = seq(1, 5, length.out = 10),
  y2 = seq(1, 6, length.out = 10))

# convert to long format
dat <- dat %>% 
  gather(var, value, -x)

# plot it
ggplot(data = dat, aes(x = x, y = value, color = var)) + 
  geom_line() + 
  geom_label(aes(label = value))

1 Ответ

0 голосов
/ 09 февраля 2019

Чтобы переместить метки в противоположных направлениях, можно создать шаговую функцию в nudge_y, чтобы умножить метки верхней строки в +1 раз на коэффициент смещения и умножить метки нижней линии на -1 на коэффициент смещения:

# move labels in opposite directions
ggplot(data = dat, aes(x = x, y = value, color = var)) + 
  geom_line() + 
  geom_label(aes(label = value), 
             nudge_y = ifelse(dat$var == "y2", 1, -1) * 1)

Создает следующую таблицу с настроенными метками.

Adjusted Chart

...