使用log在散点图上绘制0值

时间:2014-03-05 10:55:42

标签: r plot

我有两个向量:

x = c(0, 20, 10000, 50, 30000)
y = c(0, 3, 800, 1000, 7000)

我想在R中对我的数据进行散点图。这与plot函数并不复杂。它在对数刻度上看起来最好,但是图表上没有显示等于0的值。我知道log(0)不存在。但我希望有一种方法可以在散点图上显示它们? (例如,y轴或x轴上的点)。有谁知道怎么做?

1 个答案:

答案 0 :(得分:4)

为了绘制数据点,请为所有值添加一个非常小的增量:

plot(x + 0.1, y + 0.1, log = 'xy')

现在隐藏哪些值为0.通过使用另一个空值符号可以很好地显示这个值:

plot(x + 0.1, y + 0.1, log = 'xy', pch = ifelse(x == 0 | y == 0, 17, 16))

或者,您也可以选择不同的颜色。

为了绘制实际的日志值,不要使用log='xy'参数,而是直接将日志应用于数字:

plot(log(x + 0.1), log(y + 0.1), pch = ifelse(x == 0 | y == 0, 17, 16))