gpt4 book ai didi

r - 如何正确地将标签添加到 ggplot2 水平箱线图

转载 作者:行者123 更新时间:2023-12-04 10:45:35 24 4
gpt4 key购买 nike

经过编辑以提供可重现的示例。

示例数据:https://owncloud.cesnet.cz/index.php/s/oopPE2Ut4quSVOK

拥有这些数据

> head(df)
Sample_Name E Sentrix_ID Sentrix_ID_full
1 P129C1S1 5.636927 5058818037 5058818037_A
2 P129C1S1 5.794948 5058818037 5058818037_A
3 P129C1S1 5.608488 5058818037 5058818037_A
4 P129C1S1 5.989108 5058818037 5058818037_A
5 P129C1S1 5.570090 5058818037 5058818037_A
6 P129C1S1 5.555401 5058818037 5058818037_A

我正在生成水平箱线图

library(ggplot2)
library(ggthemes)

df <- read.csv("sample.csv")
df$Sentrix_ID <- as.factor(df$Sentrix_ID)
df$Sentrix_ID_full <- as.factor(df$Sentrix_ID_full)

head(df)

p <- ggplot(data = df,
aes(y = E, x = Sentrix_ID_full, color = Sentrix_ID, label = Sample_Name)) +
geom_boxplot(outlier.shape = NA) +
scale_colour_manual(values = c("5058818037" = "red", "5226121006" = "green")) +
theme_few() +
guides(colour = FALSE) +
labs(x = "Sentrix ID", y = "E", title = "intensity values") +
coord_flip()

p

我想为每个箱线图添加标签:

p <- p + geom_text()

但这种情况发生了:

有什么解决办法吗?提前谢谢你:)

最佳答案

一个建议:使用第二个数据框在定义的位置仅标记每个箱线图一次:

# mock data
set.seed(1)
df <- data.frame(var_1 = c(rep("A", 15), rep("B", 15), rep("C", 15)),
value = sample(100, 45, replace= T))

# the kind of plot you have
ggplot(df, aes(x = var_1, y = value, label = var_1)) +
geom_boxplot() +
coord_flip() +
geom_text()

plot_1

# Use of plyr package
library(plyr)
df2 <- ddply(df, "var_1", summarize, max_value = max(value, na.rm = T))
# I chose max_value as position for the label

# the new plot
ggplot(df, aes(x = var_1, y = value)) +
geom_boxplot() +
coord_flip() +
geom_text(data = df2, aes(x = var_1, y = max_value, label = var_1), hjust = -0.5) # use hjust to adjust horizontal position

enter image description here

关于r - 如何正确地将标签添加到 ggplot2 水平箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47596826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com