2

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

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

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

  1. 我希望这些条不要放在其相应的 nseqs 值处,而是按 nseqs 升序排列。
  2. 我不希望每个网格都具有相同的比例。一切都需要紧密贴合。

我试图将 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]))
4

1 回答 1

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]))
于 2013-07-30T22:55:53.880 回答