移动图表标签的变量在相反方向上

问题描述 投票:0回答:1

我无法找出如何做到这一点的任何地方,所以我想现在我已经想通了会后的解决方案。

我创建基于在长格式的数据的一组标签简单的图表(参见下面的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))
r ggplot2 label
1个回答
1
投票

在相反的方向移动所述标签,可以创建在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

© www.soinside.com 2019 - 2024. All rights reserved.