我有一个包含2列的表:时间和距离。他们两个> 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的参数。
答案 0 :(得分:5)
您可能更喜欢
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()
(我应该在最后一个子图中使用轴标签&#34; x&#34;和&#34; y&#34;而不是&#34; log(x)&#34;和&#34; log(y)&#34; ...)