1

我有以下数据集:

      Marker   Method NAtype        Ratio
1     CSF1PO      GEL     -9 3.623417e-01
2     CSF1PO      GEL     -1 4.713273e-02
3     CSF1PO      GEL     NA 0.000000e+00
4     CSF1PO MegaBACE     -9 1.417205e-02
5     CSF1PO MegaBACE     -1 8.312974e-03
6     CSF1PO MegaBACE     NA 5.405026e-06
7     CSF1PO      ABI     -9 4.714592e-02
8     CSF1PO      ABI     -1 1.989925e-03
9     CSF1PO      ABI     NA 4.174494e-05
10  D10S1248      GEL     -9 9.999201e-01
11  D10S1248      GEL     -1 7.098303e-05
12  D10S1248      GEL     NA 0.000000e+00
13  D10S1248 MegaBACE     -9 6.562637e-01
14  D10S1248 MegaBACE     -1 2.518769e-03
15  D10S1248 MegaBACE     NA 1.081005e-05
16  D10S1248      ABI     -9 7.138484e-03
17  D10S1248      ABI     -1 1.029723e-03
18  D10S1248      ABI     NA 1.391498e-05

我想用这些数据制作一个堆积条形图。我不精通 ggplot2,也不知道如何为每个类别创建 3 个条形图。

例如,第一列有我的类别,这些是我图表 x 轴上的名称。对于每个类别(“CSF1PO”和“D10S1248”),我想要 3 个条形图(第 2 列中的“GEL”、“MegaBACE”、“ABI”)。每个条应分为 3 个子集(第 3 列中的“-9”、“-1”、“NA”)。第四列(比率)有我的价值观。

我想要类似的东西

ggplot(data, aes(x=Marker, y=Ratio, fill=NAtype)) + geom_bar(stat="identity") + facet_grid(~Method)

但每个类别的条并排,而不是分开的网格。有人可以帮忙吗?谢谢!

4

1 回答 1

2

ggplot2不允许您在同一个图中同时包含stackdodge作为位置。但是你可以通过使用来实现你想要的facet_wrap。使用您的数据查看此示例:

ggplot(df, aes(Method, Ratio, fill = Method)) + 
geom_bar(stat = "identity", postion = "dodge") + facet_wrap(~Marker)

在此处输入图像描述

于 2012-10-31T20:06:27.703 回答