如何在相等大小的情况下设置具有递减幂值的 x 轴
How to set x-axis with decreasing power values in equal sizes
目前我正在使用 R 绘制一些累积分布图,我尝试将 x 轴设置为 递减的幂值 (例如 10000,1000,100,10,1)大小相等但我失败了:
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()
+scale_x_reverse(breaks=c(10000,1000,100,10,1))
+scale_shape_manual(values=c(15,19))
好像输出的10000的区间比较大,所以其他4个值一起留在了x轴右小尺寸。
有谁知道如何在 equal sizes 中设置不同间隔的 x 轴值?非常感谢。
使用此代码:
set.seed(12345)
test=rnorm(20,1000,5000)
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()+ scale_x_log10()+ scale_x_reverse(breaks=c(10000,5000,1000,1))
我知道了:
这是你想要的吗?
结合@Robert 的示例和此处提供的答案中的代码:How to get a reversed, log10 scale in ggplot2?
library("scales")
library(ggplot2)
reverselog_trans <- function(base = exp(1)) {
trans <- function(x) -log(x, base)
inv <- function(x) base^(-x)
trans_new(paste0("reverselog-", format(base)), trans, inv,
log_breaks(base = base),
domain = c(1e-100, Inf))
}
set.seed(12345)
test=rnorm(20,1000,5000)
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()+
scale_x_continuous(trans=reverselog_trans(10), breaks = c(10000,1000,100,10,1))
这应该可以满足您的要求,即 x 轴上从 10000 到 1000 的距离与从 10 到 1 的距离相同。
目前我正在使用 R 绘制一些累积分布图,我尝试将 x 轴设置为 递减的幂值 (例如 10000,1000,100,10,1)大小相等但我失败了:
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()
+scale_x_reverse(breaks=c(10000,1000,100,10,1))
+scale_shape_manual(values=c(15,19))
好像输出的10000的区间比较大,所以其他4个值一起留在了x轴右小尺寸。 有谁知道如何在 equal sizes 中设置不同间隔的 x 轴值?非常感谢。
使用此代码:
set.seed(12345)
test=rnorm(20,1000,5000)
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()+ scale_x_log10()+ scale_x_reverse(breaks=c(10000,5000,1000,1))
我知道了:
这是你想要的吗?
结合@Robert 的示例和此处提供的答案中的代码:How to get a reversed, log10 scale in ggplot2?
library("scales")
library(ggplot2)
reverselog_trans <- function(base = exp(1)) {
trans <- function(x) -log(x, base)
inv <- function(x) base^(-x)
trans_new(paste0("reverselog-", format(base)), trans, inv,
log_breaks(base = base),
domain = c(1e-100, Inf))
}
set.seed(12345)
test=rnorm(20,1000,5000)
n<-ceiling(max(test))
qplot(1:n, ecdf(test)(1:n), geom="point",xlab="check-ins",
ylab="Pr(X>=x)")+ geom_step()+
scale_x_continuous(trans=reverselog_trans(10), breaks = c(10000,1000,100,10,1))
这应该可以满足您的要求,即 x 轴上从 10000 到 1000 的距离与从 10 到 1 的距离相同。