我假设您要绘制所有点,无论它们是否属于ABCA2、ABCA3、ABCA5 等。
假设您的数据框名为df,除了ID 和ABCA_ 形式的变量之外没有其他变量。然后,您可以将所有这些 ABCA_ 子组收集到一列中:
tidyr::gather(df, key = "ABCA_group", value = "value", -ID)
# ID ABCA_group value
# 1 A1 ABCA2 0.04146778
# 2 A2 ABCA2 0.10223063
# 3 A3 ABCA2 -0.12581648
# 4 A1 ABCA3 -0.10448552
# 5 A2 ABCA3 0.03305589
# 6 A3 ABCA3 0.09651400
# 7 A1 ABCA5 0.19178010
# 8 A2 ABCA5 0.14653770
# 9 A3 ABCA5 -0.11058790
现在我们可以通过管道将其输入ggplot 以获得分类散点图(带有一点水平抖动),并将 y 轴限制为 [0, 1](这将删除像 -0.12581648 这样的值)。确保事先library(dplyr) 获取管道操作员%>%。
tidyr::gather(df, key = "ABCA_group", value = "value", -ID) %>%
ggplot(aes(x = ID, y = value)) +
geom_jitter(color = "red", width = 0.05) +
ylim(c(0, 1))
# Warning message:
# Removed 3 rows containing missing values (geom_point).
我假设您不会同时在 x 轴上绘制所有 769 个类别,因此您可以通过在 tidyr::gather 和 ggplot 之间添加额外的过滤步骤来仅选择其中的一个子集:
tidyr::gather(...) %>%
dplyr::filter(ID %in% c("A1", "A2")) %>%
ggplot(...)