繁体   English   中英

当R图中log =“ y”时,使轴给出自然对数而不是log10

[英]Making an axis give Natural Log instead of log10 when log = “y” in R plot

背景:

当我们在R curve()调用中设置log = "y"时,R将要绘制的函数转换为函数原始值的输出log10值( 即,无需更改原始函数以输出log10 )。

题:

我想知道是否有可能让R绘制要绘制的函数的对log (即自然对数)( 即THIS TIME,而无需将原始函数更改为输出log数值 )?

例:

例如,下面,R仅通过设置log = "y"来绘制函数LFlog10值( 而无需更改LF函数以输出log10 )。 以同样的方式,我们是否可以让R绘制LF函数的log (而无需更改LF函数以输出log数值)?

 LF = function(x) dnorm(250, x, 2)*dnorm(265, x, 2)*dnorm(259, x, 2)

 curve(LF, from = 250, to = 266, log = "y")

@Andrew Gustar绝对正确,值和形状将相同。

唯一的区别是刻度线

秤套件提供了一些选项

library(ggplot2)
library(scales)

虚拟ggplot

p <- ggplot(data = data.frame(x = 0), mapping = aes(x = x)) 

自然对数刻度以e为单位显示标签

p + stat_function(fun = LF) + xlim(250,266) +
    scale_y_continuous(trans = log_trans(), 
                         breaks = trans_breaks("log", function(x) exp(x)),
                         labels = trans_format("log", math_format(e^.x)))

在此处输入图片说明

替代绘图日志(LF)

logLF <- function(x) log(LF(x))
p + stat_function(fun = logLF) + xlim(250,266) 

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM