我知道参数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)
没有成功。
最佳答案
使用以 10 为底的对数正态分布的 pdf
[将其推广到其他对数库很简单。]
然后我们可以在 log10-log10 刻度上绘制 pdf。
(gg)绘图
# 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)")
不使用 ggplot 进行绘图
plot(x, log10(y), type = "l")
关于r - 使用 R 以双对数刻度(以 10 为底)绘制分布的密度线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044939/