- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 geom_boxplot
中标记异常值使用 ggrepel::geom_label_repel
.当只有一个分组变量时它工作得很好,但是当我尝试将它用于多个分组变量时,我遇到了问题。由于某种原因,ggrepel 中的 position 参数似乎不太一致,请参见此示例:
library(tidyverse)
library(ggrepel)
set.seed(1337)
df <- tibble(x = rnorm(500),
g1 = factor(sample(c('A','B'), 500, replace = TRUE)),
g2 = factor(sample(c('A','B'), 500, replace = TRUE)),
rownames = 1:500)
is_outlier <- function(x) {
return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
}
df_outliers <- df %>% group_by(g1, g2) %>% mutate(outlier=is_outlier(x))
ggplot(df_outliers, aes(x=g1, y=x, fill=g2)) +
geom_boxplot(width=0.3, position = position_dodge(0.5)) +
ggrepel::geom_label_repel(data=. %>% filter(outlier),
aes(label=rownames), position = position_dodge(0.8))
最佳答案
你可以试试这个:
ggplot(df_outliers,
aes(x=g1, y=x, fill=g2, label=rownames)) +
geom_boxplot(width = 0.3, position = position_dodge(0.5)) +
geom_label_repel(data = . %>%
filter(outlier) %>%
group_by(g1) %>%
complete(g2, fill = list(x = 0, rownames = "")),
position = position_dodge(0.5),
box.padding = 1,
min.segment.length = 0,
show.legend = FALSE)
geom_label_repel()
的数据源按照aosmith的建议添加B-A组合,填充0
对于 x(任何数字都可以,只要它不是默认的 NA)和 ""
为 rowname (ggrepel 不会绘制空标签,但会在躲避时考虑它们)。 box.padding
设置为 1(从默认值 0.25 增加)以将标签推得更远,从而使线段更加可见。 min.segment.length
设置为 0(从默认值 0.5 减少)以强制绘制线段,无论它们有多短。 show.legend = FALSE
是可选的。我只是不喜欢看到“a”字母出现在图例中。)
关于r - ggrepel:结合使用 position_dodge 和 geom_label_repel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53377299/
The documentation没有解释这究竟是什么width争论 它指定了谁的宽度? 什么是“单位”? 默认值是多少? 默认值为 width = NULL ,但反复试验表明 width = 0.9
对于两个分类变量的每个交叉分类,我有五个数据点。我试图在误差线之间添加一些均匀的间距,这样它们就不会在多面 ggplot2 图中重叠,但失败了。数据很像这样...... library(ggplot2
我正在尝试使用 ggplot2 函数 geom_text 在条形图上方添加标签(字母)。我的条形图使用 position=position_dodge() 分隔,因此我需要对新标签应用相同的条形图。不
我正在尝试使用 ggplot2 函数 geom_text 在条形图上方添加标签(字母)。我的条形图使用 position=position_dodge() 分隔,因此我需要对新标签应用相同的条形图。不
我的问题与这个 question 密切相关,但是是一个后续问题,而不是重复。我的绘图问题与将 postion_dodge() 与 geom_line() 一起使用有关。 数据: Behaviour R
我正在尝试在 R 中生成一个双因子实验图。它包含三个级别,每个级别都有两个子级别。我想对这些组中的每一个进行注释,但我找不到合理的方法。 这是一个为顶级生成注释的示例: ggplot(mtcars,
问题:我的数据集有一个共享基线(时间点 1)和 2 个重复测量。后续点在 2 个不同的条件下重复(即交叉)。绘图时,结果、误差线和数据点重叠。 library(tidyverse) set.seed(
我在使用 ggplot2 时遇到了以下困难。我正在尝试创建一个带有时间序列数据集的条形图,其中显示每个条形的值和 x 轴下的一个不错的日期格式。问题是: 要设置在柱内或柱上方,必须使用 positio
我看到了 this回答但无法复制。 我得到这样的数据: df = data.frame(x = rep(sample(letters, 4), 2), y = roun
我正在尝试使用 ggplot、geom_poitrange 绘制图形。我有两组,每组有两个点和相应的错误值。我使用的代码如下: group<-c("A","A","B","B") va
我试图在 geom_boxplot 中标记异常值使用 ggrepel::geom_label_repel .当只有一个分组变量时它工作得很好,但是当我尝试将它用于多个分组变量时,我遇到了问题。由于某种
我正在尝试用 geom_text 标记条形图。它在大多数情况下适用于 position_dodge,但在某些情况下,我得到的图看起来像这样。我使用 preserve = 'single' 绕过宽条,但
我想做的是同时使用 position = "fill"和 position = "dodge" geom_bar() 的参数同时不知何故。使用一些样本数据 set.seed(1234) df %
使用下面的代码,刻面 bB 中的标签未正确定位。 问题似乎源于没有position_dodge(preserve="single")为 geom_text (正确的?)。我知道我可以“手动”添加一个空
我想在其中一个闪避条上专门放置一些东西,我该怎么做? 在下面的示例中,我想在条形图的 cat3 组中的 A3 上专门放置一些东西。我知道 cat3 的 x = 3 但由于闪避宽度和条宽的相互依赖性,似
我是一名优秀的程序员,十分优秀!