【发布时间】:2014-08-19 15:32:16
【问题描述】:
我正在尝试制作一个堆积条形图,其中 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
我的问题是我希望 time = 1 和 time = 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 自动为 time=1 和 time =4 放置 x 值,没有条形图,而无需向数据添加值?我一直在寻找几个小时,但找不到任何答案。
谢谢。
【问题讨论】:
-
只要把“时间”作为一个因素。
base$Time <- factor(base$Time, levels=1:4)。这样ggplot将“知道”缺失值。 -
这也很好用,谢谢!