ggplot中的订单栏

时间:2013-08-27 19:56:11

标签: r ggplot2

我正在绘制ggplot中的条形图:

ggplot(fastqc.dat,aes(y=fastqc.dat$ReadCount,x=fastqc.dat$Sample)) + geom_bar(stat="identity",position="identity",fill="darkblue") + xlab("Samples") + ylab("Read Counts") + opts(axis.text.x=theme_text(angle=-90))

我的文件' fastqc.dat'看起来像这样:

             Sample        ReadCount
 201304950-01_ATTCAGAA_R1  27584682
 201304951-01_GAATTCGT_R1  25792086
 201304952-01_CTGAAGCT_R1  36000000
 201304953-01_GAGATTCC_R1  35634177
 201304954-01_ATTACTCG_R1  88906701

它产生以下图: enter image description here

但我想根据读数(即Y轴)对条形图进行重新排序。我尝试了很多东西,但它不会发生。我甚至尝试基于ReadCount列对fastqc.dat进行排序。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

...所以将有用的建议结合在一起,一个解决方案就是:

fastqc.dat$Sample <- factor(fastqc.dat$Sample,
                            levels=fastqc.dat$Sample[order(fastqc.dat$ReadCount)])

而不是使用你的代码...

HTH

答案 1 :(得分:-3)

我得到了它的工作。我必须将aes(x = fastqc.dat $ Sample)添加到geom_bar(),如下所示:

fastqc.dat$Sample <-factor(fastqc.dat$Sample, levels=fastqc.dat[order(fastqc.dat$ReadCount), "Sample"])

ggplot(fastqc.dat,aes(x=fastqc.dat$Sample,y=fastqc.dat$ReadCount)) + geom_bar(aes(x=fastqc.dat$Sample),stat="identity",position="identity",fill="darkblue") + xlab("Samples") + ylab("Read Counts") + opts(axis.text.x=theme_text(angle=-90))

这将条形排列在X轴上。