【问题标题】:making a stacked bar graph with 3 bars for each category制作一个堆叠条形图,每个类别有 3 个条形图
【发布时间】:2012-10-21 09:25:38
【问题描述】:

我有以下数据集:

      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”)。第 4 列(比率)有我的值。

我想要类似的东西

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

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

【问题讨论】:

  • 如果你想同时躲避和堆叠栏杆,我不believe你可以。

标签: r


【解决方案1】:

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

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

【讨论】:

  • 这很有趣。谢谢!但是现在我没有绘制我的数据子集(df$NAtype)......它们应该是条形图中的堆栈。所以这不可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多