具有对数刻度轴的ggplot条形图中条的方向

问题描述 投票:0回答:2

[我正在尝试根据以下数据(dataframe = df)创建多个数据的条形图,这些数据的y轴的log10 y轴的非零值小于1,如下面的图像(在graphpad中创建):

No  Perc    Codon
1   72   ATA
2   12.7273  ATG
3   8.72727  GTG
4   0.727273     ATG
5   0.363636     GTG
6   0.363636     GTG
7   0.363636     GTG
8   0.363636     GTG
9   0.363636     GTG
10  0.363636     ATA
11  0.363636     ATA
12  0.363636     ATA
13  0.363636     ATA
14  0.363636     ATA
15  0.363636     ATA
16  0.363636     ATG
17  0.363636     ATG
18  0.363636     ATG
19  0.363636     ATG
20  0.363636     ATG

graphpad image

使用ggplot获取以下数据,我正在尝试根据其他问题的其他信息来创建类似的内容,以解决我的问题(无济于事)。

ggplot(data=df,aes(x=No, y=Perc, color=Codon)) + geom_bar(stat="identity") + scale_y_log10( breaks=c(0.1, 1, 10, 100), limits=c(0.1, 100), position = "top") + coord_flip() + geom_segment( aes(x=No, xend=No, y=0.01, yend=Perc))

将产生以下图像:

ggplot image

但是,尽管小于1,我希望条形图沿相同方向继续前进。此外,有一种方法可以将x轴重新定位到图形顶部,并重新排列数据,以使最大值在图形板生成的图像中位于顶部?

[我知道其他类似的questions已经用条形图的方向描述了类似的问题,但是没有解决方案。

对此新手的任何帮助或建议,将不胜感激。谢谢!

我正在尝试基于以下数据(dataframe = df)创建多个数据的条形图,这些数据的y轴的log10 y轴的非零值小于1,如下图所示(在graphpad中创建): 。

r ggplot2 geom-bar
2个回答
1
投票

让我用library(scales)提供另一个答案。


1
投票

geom_barscale_y_log搭配使用效果不佳。我认为最好的前进方法是使用geom_segment,因为您已经在尝试。请注意,您正在要求geom_segment0.01开始,但是y轴仅从0.1开始。调整aes可让您有所作为。怎么样:

© www.soinside.com 2019 - 2024. All rights reserved.