1

样本数据 ( pindex) 如下所示:

    gene    index   siC siJ Ctarget Jtarget
1   A1BG    0.00000000  0.00574890  -0.015349200    FALSE   FALSE
2   A1CF    0.00000000  0.00000000  0.000000000 FALSE   FALSE
3   A2LD1   2.51692976  -0.88139800 -0.112959000    TRUE    TRUE
4   A2M 0.00000000  0.86064700  0.000000000 FALSE   FALSE
5   A2ML1   0.00000000  1.07844000  0.000000000 FALSE   FALSE
6   A4GALT  0.00000000  0.83358200  0.000000000 FALSE   TRUE
7   AAAS    12.97712855 -0.64036900 0.000000000 TRUE    TRUE
8   AACS    4.69408532  -0.02945270 0.000000000 TRUE    TRUE
9   AADAC   0.00000000  0.00000000  0.000000000 FALSE   FALSE

我的代码是这样的:

ggplot(pindex, aes(Ctarget,log10(index+1))) + geom_boxplot(aes(colour=Jtarget))

这将根据CTargetJtarget列绘制箱线图。 绘图示例

然而,这个情节很丑陋,让人迷惑不解。

我想要做的是制作四个箱线图,其组为、NEITHER Ctarget NOR Jtarget和(这四个组有重叠)。CtargetJtargetCtarget AND Jtarget

有人对此有想法吗?

4

1 回答 1

0

这可能不是最有效或最优雅的方式,但它确实有效。首先,定义一个新的data.frame。每个类别的目标都包含在所有适合它的观察中(因此一些观察出现多次):

> pindex2 <- rbind(data.frame(index=pindex$index[pindex$Ctarget==TRUE],
    targets="Ctarget"),
  data.frame(index=pindex$index[pindex$Ctarget==TRUE & pindex$Jtarget==TRUE],
    targets="Ctarget AND Jtarget"),
  data.frame(index=pindex$index[pindex$Ctarget==FALSE & pindex$Jtarget==FALSE],
    targets="NOT Ctarget OR Jtarget"),
  data.frame(index=pindex$index[pindex$Jtarget==TRUE],
    targets="Jtarget"))

然后情节很简单:

ggplot(pindex2,aes(x=targets,y=log10(index+1))) + geom_boxplot()

根据您提供的几行,它看起来像这样:

在此处输入图像描述

然后你可以随心所欲地玩颜色和诸如此类的东西。

于 2013-01-18T05:46:11.177 回答