我知道参数log="xy"
,但我不知道你是否可以控制对数刻度的基数(我的猜测是10可能是默认值(?)),而我不是在下面的具体问题上获得幸运...
如何用R重现以下图(from this source)。特别是,我遇到了基准10 x和y轴的问题。
撇开电力法红线,我正在玩
x = rlnorm(1e4,0,10)
h = hist(x, prob=T, plot=F)
plot(h$count, log="xy", type="l", lend=2)
没有成功。
答案 0 :(得分:2)
在base10中使用lognormal的pdf
[将其推广到其他日志基础非常简单。]
然后我们可以在log10-log10比例上绘制pdf。
# lognormal base log10 pdf, w is in log10
lognorm_base10 <- function(w, mu, sigma) {
log10(exp(1)) / (sqrt(2*pi*sigma^2) * 10^w) * exp(- (w - mu)^2 / (2 * sigma^2));
}
# Generate data for mu = 0, sigma = 10
x <- seq(0, 10, length.out = 100);
y <- lognorm_base10(x, 0, 10);
# Plot
require(ggplot2);
gg <- ggplot(data.frame(x = x, y = y), aes(x, y));
gg <- gg + geom_line() + scale_y_log10();
gg <- gg + labs(x = "log10(x)", y = "log10(p)")
plot(x, log10(y), type = "l")