关于r:在ggplot2堆叠条形图中按大小排序堆叠

您所在的位置:网站首页 条形图按数据大小排序 关于r:在ggplot2堆叠条形图中按大小排序堆叠

关于r:在ggplot2堆叠条形图中按大小排序堆叠

2024-03-16 11:04| 来源: 网络整理| 查看: 265

所以我有大量的数据,下面以示例为例:

12345678910111213141516Sequence  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个字,但实际上它们的长度是"长度"。我正在查看这里每个尺寸类别的序列的丰富性。另外,我想可视化特定序列在其大小类中所代表的丰度比例。目前,我可以制作一个堆积的条形图,如下所示:

123ggplot(tab, aes(x=Length, y=Abundance, fill=Sequence))   + geom_bar(stat='identity')   + opts(legend.position="none")

对于像这样的小型数据集,这很好,但是我的实际数据集中大约有170万行。它看起来非常多彩,我可以看到特定的序列在一个尺寸级别中占据多数,但是非常混乱。

我希望能够通过该序列的丰富程度来订购每种尺寸的彩色堆叠条形图。即,堆叠中具有最高丰度的条位于每个堆叠的底部,而具有最低丰度的条位于顶部。这样看起来应该更像样。

关于如何在ggplot2中执行此操作的任何想法?我知道aes()中有一个" order"参数,但是我无法弄清楚它应如何处理我所拥有的格式的数据。

相关讨论 @ gsk3-我认为操作人员在这里要求有所不同。 我想kukimbob不想按总高度对条形进行排序,而是在询问如何对每个条形块中的彩色块进行排序,将最大的块放在底部,按x轴向下,最小的块放在顶部。 (即,每个条形内的颜色顺序在各条形之间可能完全不同)。 @JoshOBrien那完全正确! x轴上的顺序很好:从最小长度到最长。 我只希望能够操纵每个栏中彩色堆栈的顺序。 啊,那绝对是另一个问题。 道歉。 我认为您需要预先对数据进行计数(例如,使用plyr::count),然后使用将订单美观度映射到计数。 请注意,在Cran版本中,订单美观性有问题,您可能需要使用dev版本。

在ggplot2的堆叠条形图中绘制条形的顺序(从下到上)是基于定义组的因子的顺序。 因此,必须根据Abundance对Sequence因子进行重新排序。 但是要获得正确的堆叠顺序,必须颠倒顺序。

12ab.tab$Sequence


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3