当前位置:  开发笔记 > 编程语言 > 正文

R中的绘图函数与对数刻度参数显示负值

如何解决《R中的绘图函数与对数刻度参数显示负值》经验,为你挑选了1个好方法。

我有一个有两列的表:时间和距离.两者都> 0(相应的米和分钟).当我做:

plot(dist, time, main="Distance vs Time", xlab="Distance (meters)", ylab="Time (min)")

我得到以下情节: 在此输入图像描述

不太可读.我将使用对数比例代替:

plot(log(dist), log(time), main="Distance vs Time", 
   xlab="Distance (meters), log scale", ylab="Time (min), log scale")

我得到以下情节: 在此输入图像描述

我的问题是:为什么情节也显示负值?我没有任何小于0的参数.



1> Ben Bolker..:

你可能更喜欢

plot(dist, time, log="xy", ...)

您在绘图中获得负值的原因是您已明确取得数据的对数.小于1的值将转换为负值 - 这就是数学的工作方式...使用log="xy"相反将绘制相同位置的点,但会更改比例以便它们显示原始值.

set.seed(101)
x <- rlnorm(10)
y <- rlnorm(10)
par(mfrow=c(2,2),las=1,bty="l")

以原始比例绘制:

plot(x,y)

绘制记录的数据,用日志值标记(当原始值<1时将为负值):

plot(log(x),log(y))

绘制记录的数据,标记为原始值:

plot(x,y,log="xy")

通过在日志位置指定轴标签刻度但使用原始值作为标签,从头开始重新创建相同的绘图(几乎):

plot(log(x),log(y),axes=FALSE)
brkpos <- c(0.2,0.5,1.0,2,3)
axis(side=1,at=log(brkpos),label=brkpos)
axis(side=2,at=log(brkpos),label=brkpos)
box()

(我应该在最后一个子图中使用轴标签"x"和"y"而不是"log(x)"和"log(y)"...)

在此输入图像描述

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有