Mat*_*eck 12 r bar-chart ggplot2 stackedbarseries
所以我有一些数据,我已经采样如下:
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
Run Code Online (Sandbox Code Playgroud)
我只是在这里显示每个序列的前4个单词,但实际上它们的长度是"长度".我正在查看我在这里的每个大小类的序列的丰富程度.另外,我想要想象一个特定序列在其大小等级中所代表的丰度比例.目前,我可以制作如下堆叠条形图:
ggplot(tab, aes(x=Length, y=Abundance, fill=Sequence))
+ geom_bar(stat='identity')
+ opts(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

这对于像这样的小数据集来说很好,但我的实际数据集中有大约170万行.它看起来非常丰富多彩,我可以看到特定的序列在一个大小的类中占多数,但它非常混乱.
我希望能够按照该序列的丰度为每个尺寸订购彩色堆叠条.即堆叠中堆积丰度最高的钢筋位于每个堆叠的底部,丰度最低的钢筋位于顶部.它应该看起来更加流畅.
有关如何在ggplot2中执行此操作的任何想法?我知道aes()中有一个"order"参数但是我无法弄清楚它应该用我所拥有的格式做数据.
Bri*_*ggs 13
在ggplot2中堆叠的条形图中绘制条形图(从下到上)的顺序基于定义组的因子的顺序.因此Sequence必须根据需要对因子进行重新排序Abundance.但要获得正确的堆叠顺序,必须颠倒顺序.
ab.tab$Sequence <- reorder(ab.tab$Sequence, ab.tab$Abundance)
ab.tab$Sequence <- factor(ab.tab$Sequence, levels=rev(levels(ab.tab$Sequence)))
Run Code Online (Sandbox Code Playgroud)
现在使用您的代码可以提供您请求的图表
ggplot(ab.tab, aes(x=Length, y=Abundance, fill=Sequence)) +
geom_bar(stat='identity') +
opts(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

不过,我可能会建议稍微不同的东西.由于你是在抑制将颜色映射到序列的比例,并且你的描述似乎表明你不关心特定的序列(并且会有很多),为什么不把它留下来呢?只需画出条纹的轮廓,没有任何填充颜色.
ggplot(ab.tab, aes(x=Length, y=Abundance, group=Sequence)) +
geom_bar(stat='identity', colour="black", fill=NA)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
7193 次 |
| 最近记录: |