添加 nudge_y 到 "Jittered" R ggplot2 图的数据标签

Adding a nudge_y to the data labels of a "Jittered" R ggplot2 graph

我遇到了一个关于在 R 图上定位标签的小问题。我用 ggplot2 包中可用的数据做了一个例子,使其可执行。

library(ggrepel)
library(ggplot2)
library(tidyverse)

pos <- position_jitter(seed = 1, height = 0.25)
ggplot(mtcars, aes(vs, wt, group = am, label = wt)) +
  geom_jitter(position = pos) +
  geom_text_repel(aes(label = ifelse(wt > 3, wt, "")), position = pos)

我使用命令 position_jitter 定义抖动,使用 geom_text_repel 设置数据标签。使用 position_jitter 我无法定义数据标签的位置 nudge_y 但我想向定义的位置 (position_jitter(seed = 1, height = 0.25)) 添加一个固定值,比方说 +0.5,以便向上移动系统地定义每个标签的值。

是否可以在 R 中制作类似这样的东西?

提前感谢您的每一个回复!

回复:评论

您可以预先手动向数据点添加抖动(随机均匀)噪声。然后轻推文本变得微不足道。

library(ggrepel)
library(ggplot2)
library(tidyverse)

mtcars %>%
  mutate(jit_vs = vs + runif(length(vs), -0.4, 0.4),
         jit_wt = wt + runif(length(wt), -0.25, 0.25)) %>%
  ggplot(aes(jit_vs, jit_wt, group = am, label = wt)) +
  geom_point() +
  geom_text_repel(aes(label = ifelse(wt > 3, wt, "")), nudge_y = 0.5)

reprex package (v2.0.1)

于 2021-09-03 创建