2014-06-28 78 views
1

我试图做一个堆叠的条形图,X轴是时间,Y轴是金额,填充颜色是某些功能。ggplot堆积条形图的x值和没有y /填充值

我的数据看起来是这样的:

> base 
    Number           Mut Time Percent 
1 117         22:A->G  2 81.81 
2 13         24:G->A  2 9.09 
3 10 22:A->G 24:G->A 108:G->A 158:G->A 162:G->A  2 6.99 
4  1       22:A->G 24:G->A  2 0.69 
5 32         24:G->A  3 94.11 
6  1       24:G->A 162:G->T  3 2.94 
7  1       24:G->A 82:G->T  3 2.94 

当我使用的代码做一个堆积条形图中ggplot:

ggplot(base,aes(x = Time, fill = Mut, y = Percent)) + geom_bar(stat='identity') + theme(legend.key.size = unit(.5, "cm")) + ylab("Number") 

我得到类似如下的图表:

http://imgur.com/32XCkTm,yfCAJsx#0

我的问题是我想那里有零值fo R个时间= 1和时间= 4

事情与此类似:

http://imgur.com/32XCkTm,yfCAJsx#1

有没有一种方法,我可以做到这一点?现在,我只是说0值数据为时间1和4,并加入我的填充功能(MUT)是一个已经在数据出现了:

> base 
    Reads           Mut Time Percent 
1  0         22:A->G  1 0.00 
2 117         22:A->G  2 81.81 
3 13         24:G->A  2 9.09 
4 10 22:A->G 24:G->A 108:G->A 158:G->A 162:G->A  2 6.99 
5  1       22:A->G 24:G->A  2 0.69 
6 32         24:G->A  3 94.11 
7  1       24:G->A 162:G->T  3 2.94 
8  1       24:G->A 82:G->T  3 2.94 
9  0         22:A->G  4 0.00 

我的问题是我不希望有继续搜索已经在数据中的特征(Mut)。有没有一种方法可以让ggplot自动将时间= 1和时间= 4的x值放入没有条形图的图形中,而无需向数据添加值?我一直在寻找几个小时,找不到任何答案。

谢谢。

+0

只是让 “时间” 的一个因素。 'base $ Time < - factor(base $ Time,levels = 1:4)'。这样'ggplot'将会“知道”关于缺失的值。 – MrFlick

+0

这工作得很好,谢谢! –

回答

1

添加+ scale_x_discrete(limits = 1:4)

enter image description here