ggplot2堆积的条形图,格式和网格

时间:2013-07-30 21:51:52

标签: r graph plot ggplot2 stacked

在我试图绘制的数据中,每个样本属于几个组中的一个,将在自己的网格上绘制。我正在为每个样本绘制堆积条形图,这些样本将按越来越多的序列排序,这是每个样本的id属性。

目前,情节(带有一些随机数据)如下所示: (因为我没有图像所需的10个代表,我在这里链接它) http://i.stack.imgur.com/A9hr2.png

我需要做几件事。我不知道从哪里开始。

  1. 我希望条形图不要放在相应的nseqs值,而是按照nseqs的升序排列。
  2. 我不希望每个网格具有相同的比例。一切都需要紧贴。
  3. 我曾尝试将facet_grid的比例和大小设置为free_x,但这会导致未使用的参数错误。我认为这与我无法正确加载缩放库这一事实有关(它一直说不可用)。

    处理绘图的代码:

    ggfdata <- melt(fdata, id.var=c('group','nseqs','sample'))
    p <- ggplot(ggfdata, aes(x=nseqs, y=value, fill = variable)) + 
           geom_bar(stat='identity') + 
           facet_grid(~group) + 
           scale_y_continuous() + 
           opts(title=paste('Taxonomic Distribution - grouped by',colnames(meta.frame)[i]))
    

1 个答案:

答案 0 :(得分:0)

试试这个:

update.packages()
## I'm assuming your ggplot2 is out of date because you use opts()
## If the scales library is unavailable, you might need to update R

ggfdata <- melt(fdata, id.var=c('group','nseqs','sample'))
ggfdata$nseqs <- factor(ggfdata$nseqs)
## Making nseqs a factor will stop ggplot from treating it as a numeric,
## which sounds like what you want

p <- ggplot(ggfdata, aes(x=nseqs, y=value, fill = variable)) + 
    geom_bar(stat='identity') + 
    facet_wrap(~group, scales="free_x") + ## No need for facet_grid with only one variable
    labs(title = paste('Taxonomic Distribution - grouped by',colnames(meta.frame)[i]))