R:具有2个X变量的分组箱线图,每组将所有样本与一个X2组进行比较

Steco

我正在尝试在ggplot2中使用两个x变量生成一个分组的箱线图。这很简单

ggplot(boxplot_classes, aes(x=Group, y=Value, fill=Mutation)) + 
geom_boxplot(position=position_dodge(0.8))

但是,我不需要比较第二个x变量定义的两个子组,但是对于第一个x变量定义的每个组,我需要将该组中的所有样本与第二个x变量中的一个子组进行比较。

这里举个例子。数据如下所示:

Value   Mutation    Group
32.00   Yes 1
5.00    no  1
18.00   no  1
3.00    no  1
16.00   no  1
14.00   Yes 1
28.00   Yes 1
28.00   Yes 1
49.00   Yes 1
15.00   Yes 1
43.00   no  2
49.00   Yes 2
40.00   Yes 2
17.00   Yes 2
9.00    no  2
31.00   Yes 2
8.00    Yes 2
43.00   no  2
50.00   Yes 2
48.00   Yes 2
11.00   Yes 3
42.00   no  3
0.00    Yes 3
15.00   Yes 3
8.00    no  3
1.00    Yes 3
41.00   no  3
15.00   no  3
4.00    no  3
31.00   Yes 3

我想生成一个图,在每个“组”中(在上面的示例中:1、2、3),将生成两个箱形图:一个用于该“组”中的所有样本,一个仅用于该组中的那些样本,其中也有mutation ==“ Yes”。在实际数据中,还有更多的“组存在”。

我希望我能很好地解释我的问题。不幸的是,我以某种方式缺少正确的语法或必须重新排列数据的方式。

非常感谢您的帮助!

编辑:我在https://s28.postimg.org/hvq8pb25p/Folie1.jpg上传了一个试图生成的图形示例

弹力球

如果我们稍微处理您的数据,我们就可以做到。假设您的数据在dat

dat_yes <- dat[dat$Mutation == 'Yes',] #subset only Yes
dat_yes$Mutation_2 <- 'Yes' #add column
dat$Mutation_2 <- 'All' #add column

dat_full <- rbind(dat, dat_yes) #put together

#plot
ggplot(dat_full, aes(x = factor(Group), y = Value))+
    geom_boxplot(aes(fill = Mutation_2))+
    xlab('Group') + 
    scale_fill_brewer(palette = 'Set1', name = 'Mutation')

首先,我们创建一个名为的数据子集dat_yes,其中仅包含带有的行Mutation == 'Yes'然后,我们创建一个新的列dat_yes称为Mutation_2这需要的价值'Yes'而已。然后,我们在您的原始数据中添加一列,该列Mutation_2仅采用的值'All'然后,我们rbind datdat_yes创建dat_full最后,我们发送dat_fullggplot

在此处输入图片说明

数据

dat <- structure(list(Value = c(32, 5, 18, 3, 16, 14, 28, 28, 49, 15, 
43, 49, 40, 17, 9, 31, 8, 43, 50, 48, 11, 42, 0, 15, 8, 1, 41, 
15, 4, 31), Mutation = c("Yes", "no", "no", "no", "no", "Yes", 
"Yes", "Yes", "Yes", "Yes", "no", "Yes", "Yes", "Yes", "no", 
"Yes", "Yes", "no", "Yes", "Yes", "Yes", "no", "Yes", "Yes", 
"no", "Yes", "no", "no", "no", "Yes"), Group = c(1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), .Names = c("Value", 
"Mutation", "Group"), class = "data.frame", row.names = c(NA, 
-30L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有2个y轴的分组箱线图,每x刻度2个绘制变量

带有 2 个 y 轴的分组箱线图,每个 x 刻度有 2 个变量

Snakemake 将所有样本用作 porechop 的一个输入

具有多种条件的“每组至少有 x 个”行的随机样本

对所有变量X和响应G进行回归分析,对R中一个数据框下的所有数据框进行回归分析

使用 ggplot2 根据两个因子变量(在 x 轴中)对箱线图进行排序

在继续下一个规则之前,如何让Snakemake将所有样本应用到单个规则?

Python:获取所有节点的度,然后在networkx中绘制一个箱线图

创建由R中的另一个变量分组的变量的所有值的列表

在多个数据集中具有多个变量的箱线图在 r 中具有相同的组

选择在同一列中具有标志 x1 但不具有 x2 的所有 ID

R ggplot2-在一个具有不同x轴范围的图中绘制多个函数

我如何在 R 中使用 group_by 将所有值与下一个值进行比较

2如何使用UnderscoreJs比较2个JSON的所有属性(一个除外)?

R ggplot2 - 如何在相同的 x 值上绘制 2 个箱线图

使用OptaPlanner将x个实体分组为具有z分组约束的未定义组数

如何在ggplot2上用一个变量绘制多个箱线图?

用每个分组的子组数和观察值标记一个箱线图

R:合并2个具有不同x长度的图

使用 dplyr 并创建具有标准偏差的箱线图的另一个变量中的变量的百分比

在R中具有2个类别变量和1个连续变量的折线图

将Hive HQL中A列的一个值与B列的所有值进行比较

Webstorm,将所有项目更改与另一个分支进行比较

将一个表与数据库中的所有表进行比较

将一个值与数组的所有元素进行比较的函数的正确逻辑是什么?

将 CSV 与具有另一个 CSV 的两列的数组进行比较

R 中具有多个 x 变量和一个 y 的简单线性回归。只写一个模型而不是每个 x 和 y 组合?

如何仅用一个分组变量将ggplot2中的折线图和条形图合并?

使用Seaborn在一个绘图窗口中对所有类别变量进行多个箱形图绘制?