我想创建带有轴中变量绝对值的堆积条形图,但是在每个条上添加百分比。这就是我的数据:
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标签 - 我在这里使用长名字):
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")
但是在我想要摆脱的传奇之上有一个小小的方格。重要的是,为什么它出现在第一位呢?
干杯。
答案 0 :(得分: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
。