【发布时间】:2012-03-02 21:34:52
【问题描述】:
所以我有大量的数据,我已经采样如下示例:
Sequence Abundance Length
CAGTG 3 25
CGCTG 82 23
GGGAC 4 25
CTATC 16 23
CTTGA 14 25
CAAGG 9 24
GTAAT 5 24
ACGAA 32 22
TCGGA 10 22
TAGGC 30 21
TGCCG 25 21
TCCGG 2 21
CGCCT 22 24
TTGGC 4 22
ATTCC 4 23
我在这里只显示每个序列的前 4 个单词,但实际上它们是“长度”长的。我正在查看我在这里拥有的每个大小类别的序列丰度。此外,我想可视化特定序列在其大小类别中所代表的丰度比例。目前,我可以制作这样的堆叠条形图:
ggplot(tab, aes(x=Length, y=Abundance, fill=Sequence))
+ geom_bar(stat='identity')
+ opts(legend.position="none")
这对于像这样的小型数据集来说很好,但我的实际数据集中有大约 170 万行。它看起来非常丰富多彩,我可以看到特定序列在一个大小类别中占多数,但它非常混乱。
我希望能够按该序列的丰度为每个尺寸订购彩色堆叠条。即,其堆栈中丰度最高的条位于每个堆栈的底部,而丰度最低的条位于顶部。这样看起来应该更漂亮。
关于如何在 ggplot2 中执行此操作的任何想法?我知道 aes() 中有一个“订单”参数,但我无法弄清楚它应该如何处理我拥有的格式的数据。
【问题讨论】:
-
@gsk3 -- 我认为 OP 在这里要求的东西略有不同。我想 kukimbob 不是想按它们的总高度对条形图进行排序,而是在询问如何对每个条形 内 的彩色块进行排序,将最大的块放在底部,沿 x 轴向下,而顶部最小。 (即每个条形中的颜色顺序可能在条形之间存在很大差异)。
-
@JoshO'Brien 完全正确! x 轴上的排序很好:从最小长度到最长。我只是希望能够操纵每个条形图中彩色堆栈的顺序。
-
啊,这绝对是一个不同的问题。道歉。
-
我认为您需要预先计算数据(例如使用
plyr::count),然后使用将订单美学映射到计数。请注意,cran 版本的订单美学有问题,您可能需要使用 dev 版本。
标签: r ggplot2 bar-chart stackedbarseries