文本在ggplot / R中使用位置参数排斥

时间:2018-02-08 18:47:11

标签: r ggplot2 position geom-text ggrepel

我正在尝试创建一个geom_point,其中文本标签都排斥,并指向其关联点,即使我使用position = dodge或position = jitter。我也有许多要标记的要点,这就是为什么我要使用ggrepel或类似的东西。我的理解是我不能使用ggrepel的position参数。

有没有什么方法可以得到这样的情节,除了指向相关点的片段?

require(ggplot2)
require(ggrepel)
data("mtcars")
mtcars$cyl <- as.factor(mtcars$cyl)
mtcars$am <- as.factor(mtcars$am)

require(ggplot2)
require(ggrepel)
dodge = position_dodge(1)
ggplot(mtcars, aes(x = am, y=mpg)) +
  geom_point(size=3, position=dodge, alpha=0.5, aes(color=cyl)) +
  geom_text_repel(data = mtcars,
                  aes(label = mpg, x=am, y=mpg),  alpha=0.9, size=4,
                  segment.size = .25, segment.alpha = .8, force = 1)

enter image description here

1 个答案:

答案 0 :(得分:4)

今天,我更新了ggrepel以支持版本0.7.3中的position选项。

请尝试一下,让我知道它是怎么回事。

如果您遇到问题,请在此处报告:https://github.com/slowkow/ggrepel/issues

安装ggrepel版本0.7.3:

devtools::install_github("slowkow/ggrepel")

让我们试一试:

require(ggplot2)
require(ggrepel)
data("mtcars")
mtcars$cyl <- as.factor(mtcars$cyl)
mtcars$am <- as.factor(mtcars$am)

dodge <- position_dodge(1)
ggplot(mtcars, aes(x = am, y = mpg, label = mpg)) +
  geom_point(
    mapping = aes(color = cyl),
    position = dodge,
    size = 3,
    alpha = 0.5
  ) +
  geom_text_repel(
    mapping = aes(group = cyl),
    position = dodge,
    size = 4,
    alpha = 0.9,
    segment.size = .25,
    segment.alpha = .8,
    force = 1
  )

ggrepel with position