如何在R中以双对称对数标度绘制宽范围数据?

dldeef67  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(151)

我有一个大的数据集需要显示在日志规模。但是对数转换可能会丢失0和负值。我在文献中找到了这个数字,这种对称的对数标度正是我所需要的。Figure in bi-symmetric logarithmic scale
pseudolog10_trans函数是R包“gallin”不是一个解决方案。
我在Matlab中找到了一个解决方案:https://www.mathworks.com/matlabcentral/answers/292499-how-can-i-plot-negative-value-with-log-scale,我如何在R中绘制,在对数转换尺度中包括所有正值,负值和零值?
数学参考:https://kar.kent.ac.uk/32810/2/2012_Bi-symmetric-log-transformation_v5.pdf

cngwdvgl

cngwdvgl1#

定义一个函数转换为有符号的日志,并使用自定义轴绘制输入。未使用任何包。

x <- c(-2000, -200, 20, 20, 200, 2000) # test input

signed_log <- function(x) ifelse(x == 0, 0, sign(x) * log(abs(x)))

plot(signed_log(x), yaxt = "n", xlab = "", ylab = "", type = "o")
b <- c(-1000, -100, -10, 0, 10, 100, 1000)
axis(2, signed_log(b), b)

相关问题