0

我想用轴中变量的绝对值创建堆积条形图,但在每个条形上添加百分比。这是我的数据的样子:

BAM  Mapping    Reads   fraction
bam1   Mapped 22493091 0.88940452
bam1 Unmapped  2796966 0.11059548
bam2   Mapped 27018375 0.88256156
bam3 Unmapped  3595212 0.11743844
bam3   Mapped 27238774 0.89441821
bam4 Unmapped  3215407 0.10558179
bam4   Mapped 19791746 0.82984107
bam4 Unmapped  4058298 0.17015893
bam5   Mapped 23298155 0.83144569
bam5 Unmapped  4723104 0.16855431
bam6   Mapped 22563538 0.83990722
bam6 Unmapped  4300784 0.16009278
bam7   Mapped 23940480 0.88134856
bam7 Unmapped  3222984 0.11865144

我快到了(别管 x-labels - 我在这里使用长名称):

gp <- ggplot(data=to_graph, aes(x=BAM, y=Reads, fill=Mapping, label=paste(round(fraction*100),"%", sep=""), size = 3,vjust=0, position = "stack")) +
     geom_bar(stat="identity") + 
    geom_text(position="stack")

在此处输入图像描述

但是在我想摆脱的传说之上还有一个小问题。重要的是如何做到这一点,为什么它会出现在第一位?

干杯。

4

1 回答 1

2

那个虚假的传说出现是因为你在里面放了所有aes不需要的东西。试试这个:

ggplot(data=to_graph, aes(x=BAM, y=Reads, fill=Mapping)) +
     geom_bar(stat="identity",position = "stack") + 
    geom_text(aes(label=paste(round(fraction*100),"%", sep="")),size = 3,vjust=0,position="stack")

aes通常,当您将美学映射到数据中的变量时,事情就会进入内部。如果您只是设置它(即size = 3)超出aes. 您放入其中的任何内容aes通常都会导致 ggplot 尝试为该美学创建传奇。

我想我从来没有见过position内部映射aes

于 2012-10-25T15:08:13.330 回答