我怎样才能从 ggplot2

问题描述

我有一个箱线图,我想在其中显示标签名称。问题是我想排斥这些标签名称以使它们超出箱线图。我尝试了 geom_text_repel 包中的 ggrepel,但当它们相互重叠时会排斥标签

也尝试过这样的建议:Repel geom label and text in ggplot. And ordering geom points based on size

并且没有收到任何关于解决我的问题的综合信息。

示例:

mtdata <- mtcars %>%
  rownames_to_column(var = "name") %>%
  mutate(cyl = as.factor(cyl))

ggplot(mtdata,aes(x = cyl,y = mpg)) + geom_Boxplot() +
  geom_text_repel(data = mtdata %>%
               filter(mpg > 20 & wt >3),aes(label = name))

理想的输出

enter image description here

因此,您可以看到有一个点描述了确切的标签位置和排斥力。

解决方法

一个厚颜无耻的解决方案是一个简单的轻推。

library(tidyverse)
mtdata <- mtcars %>%
  rownames_to_column(var = "name") %>%
  mutate(cyl = as.factor(cyl))

ggplot(mtdata,aes(x = cyl,y = mpg)) + geom_boxplot() +
  ggrepel::geom_text_repel(data = mtdata %>%
                    filter(mpg > 20 & wt >3),aes(label = name),nudge_x = .75)

reprex package (v0.3.0) 于 2021 年 2 月 8 日创建

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...