如何在ggplot 2比例y连续(trans=";reverselog";中设置断点

如何在ggplot 2比例y连续(trans=";reverselog";中设置断点,r,ggplot2,R,Ggplot2,我的数据如下 x <- c(20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 1, 0.5, 0.3) y <- c(2e-42, 8e-20, 2e-15, 9e-9, 5e-7, 4e-7, 7e-5, 3e-3, 2e-2, 1e-1, 0.5, 0.3, 0.8, 5e-2, 8e-3) data <- as.data.frame(cbind(x,y)) y轴的断裂不是我想要的。我尝试了下面的代码,但它不起作用 ggplot(data, a

我的数据如下

x <- c(20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 1, 0.5, 0.3)
y <- c(2e-42, 8e-20, 2e-15, 9e-9, 5e-7, 4e-7, 7e-5, 3e-3, 2e-2, 1e-1, 0.5, 0.3, 0.8, 5e-2, 8e-3)
data <- as.data.frame(cbind(x,y))

y轴的断裂不是我想要的。我尝试了下面的代码,但它不起作用

ggplot(data, aes(x=x, y=y))+scale_x_log10() +scale_y_continuous(breaks=c(seq(2e-42, 0.0001, 0.0000001),seq(0.0001, 0.001, 0.0003),seq(0.001, 0.01, 0.003),seq(0.01, 0.05, 0.02), seq(0.05, 0.1, 0.05), seq(0.1,0.5,0.4), seq(0.5, 0.99, 0.49)),trans = "reverselog") + geom_point()

我想这就是你想要的

标签的外观可能需要整理:可以使用
主题(axis.text.y=element\u text(size=6))
使文本大小变小,也可以使用更少的分隔符

库(ggplot2)
图书馆(metR)
图书馆(比例尺)

lab_y使用
scales
可以使用
trans_new
定义新的转换。 从定义变换轴的函数开始,还需要定义其逆函数。基于这些功能定义了新的
trans\u

然后通过调用此函数
coord\u trans(y=log\u reverse)
在y轴上变换图表。在以下
scale\u y\u continuous
breaks中,定义了标签和限制

x
ggplot(data, aes(x=x, y=y))+scale_x_log10() +scale_y_continuous(breaks=c(seq(2e-42, 0.0001, 0.0000001),seq(0.0001, 0.001, 0.0003),seq(0.001, 0.01, 0.003),seq(0.01, 0.05, 0.02), seq(0.05, 0.1, 0.05), seq(0.1,0.5,0.4), seq(0.5, 0.99, 0.49)),trans = "reverselog") + geom_point()