gpt4 book ai didi

r - ggplot 中缺少组标签

转载 作者:行者123 更新时间:2023-12-03 21:34:00 25 4
gpt4 key购买 nike

我想使用stat_summaryhggplot中添加分组标签而不是单个标签。我的数据是这样的:

dat <- read.table(text = "   id2 small_oe xinterceptm startidm endidm medium_oe medium_region
1 1 NA 1 1 1 NA <NA>
2 2 1.66 NA 1 4 1.36 FL-M-4
3 3 1.21 NA 1 4 1.36 FL-M-4
4 4 NA 4 4 4 NA <NA>
5 5 1.34 NA 4 7 1.17 FL-M-5
6 6 0.97 NA 4 7 1.17 FL-M-5
7 7 NA 7 7 7 NA <NA>
8 8 1.21 NA 7 10 1.19 FL-M-14
9 9 0.91 NA 7 10 1.19 FL-M-14
10 10 NA 10 10 10 NA <NA>
11 11 1.34 NA 10 13 1.17 FL-M-13
12 12 0.96 NA 10 13 1.17 FL-M-13
13 13 NA 13 13 13 NA <NA>
14 14 1.30 NA 13 16 1.20 NY-M-4
15 15 1.18 NA 13 16 1.20 NY-M-4
16 16 NA 16 16 16 NA <NA>
17 17 0.87 NA 16 18 0.87 NY-M-5
18 18 NA 18 18 18 NA <NA>
19 19 1.09 NA 18 20 1.09 NE-M-5
20 20 NA 20 20 20 NA <NA>
21 21 1.60 NA 20 22 1.60 FL-M-3
22 22 NA 22 22 22 NA <NA>
23 23 1.14 NA 22 25 1.14 FL-M-1
24 24 1.12 NA 22 25 1.14 FL-M-1
25 25 NA 25 25 25 NA <NA>
26 26 0.71 NA 25 27 0.71 FL-M-2
27 27 NA 27 27 27 NA <NA>
28 28 1.16 NA 27 29 1.16 FL-M-12
29 29 NA 29 29 29 NA <NA>
30 30 1.14 NA 29 31 1.15 FL-M-11",
header = T, stringsAsFactors = F)

当我尝试向 ggplot 中的每个组添加标签时,某些组的标签丢失了。 (图和我的代码附在此处)我该如何解决这个问题?

library(ggplot2)
library(ggstance)

ggplot(dat, aes(x = id2, y = small_oe)) +
theme(panel.background = element_rect(fill = "white", colour = "grey50")) +
theme(panel.grid.major = element_blank(), ## adjust the theme: clean background, remove x-axis labels/values
panel.grid.minor = element_blank(),
axis.text.x = element_blank(),
axis.title.x = element_blank(),
axis.ticks.x = element_blank()) +
geom_vline(aes(xintercept = xinterceptm), linetype = "dotted", alpha = 0.3) + ## add vertical lines seperating median cluster groups
geom_segment(aes(x = startidm, xend = endidm, y= medium_oe, yend = medium_oe), alpha = 0.4) + ## add line segments as median region o:e
stat_summaryh(fun.x = mean, aes(label = medium_region, y = medium_oe+0.02), geom = "text", size = 3, alpha = 0.4, color = "blue")

enter image description here

谢谢!

最佳答案

dat$medium_region 包含 NA,因此是空白标签。您应该将它们更改为适当的内容。

dat$medium_region <- gsub("<NA>", "Unknown", dat$medium_region)

如果所有 NA 没有名称但您希望显示标签,那么这可能是重命名所有 NA 的合适方法。

解决方案:

所以我认为这两个标签对位于同一 y 平面(medium_oe 值)感到不满意,因此您可以添加一个向量来专门将这两个标签移出对齐位置。创建一个名为 mod 的新列并更改值:

dat$mod <- 0
dat$mod[dat$mod$medium_region == FL-M-5] <- 0.01

然后将 stat_summaryh 参数更改为:

y = medium_oe + 0.02 + mod

这适用于您的示例数据,但需要针对其他数据集中的特定重叠样本更改 mod。不理想,但我不明白为什么他们不能共享相同的 y 坐标。

这可能与此警告有关:

4: Removed 1 rows containing missing values (geom_text).

关于r - ggplot 中缺少组标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48915263/

25 4 0