r - 处理 R 中的零日志值?

标签 r graphics plot statistics

我正在绘制散点图 plot(x, y) 并希望它具有对数值,所以我这样做:plot(log(x), log(y))。我想处理以下情况:x 中的某些值为 0,因此不在图上,而相应的 y 值为非零。

我想显示带有对数刻度但自然数值的散点图,这意味着如果在 log2 中则刻度应该是 2^0, 2^1, 2^2, ... 这样我就可以在刻度上绘制 0 值,以免错过这些点。

这是一个例子:

> x = c(0, 1, 20, 100, 200, 500)
> y = c(1, 16, 32, 105, 300, 50)
> plot(x, y)

有六点。如果我使用:

> plot(log2(x), log2(y))

只有 5 个绘制,因为 x[0]、y[0] 被省略(x 值为 0)。因此,我想绘制对数值,但刻度标签是简单标记在对数刻度上的自然数。然后你可以很容易地在同一个轴上有 0、2^0(当然是 1)、2^1、2^2 等等。然后点 (x[0], y[0]) 将仍被绘制,同时保持对数刻度。

旁注:我认为通过示例对询问非常合理的问题的帖子投反对票是不公平的。这显然切合主题且相关,几乎所有在对数值上绘制事物并关心边界/边缘情况的人都会想到。

(我知道有些人通过向所有点添加任意小常量来处理这个问题,但我想避免这样做,因为它很困惑。)谢谢

最佳答案

据我了解,您想以对数刻度绘制 x 与 y 的关系图?

此处和使用 latticelatticeExtra 的示例

# Some reproducible data
tm <- data.frame(x=seq(0,10,1),y=seq(0,10,1))
library(lattice) 
library(latticeExtra) 
xyplot(x ~ y , data=tm, 
       scales= list(x=list(log=2), 
                    y=list(log=2)), 
       xscale.components = xscale.components.logpower, ## to get pretty scales
        yscale.components = yscale.components.logpower 
) 

enter image description here

关于r - 处理 R 中的零日志值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14720161/

相关文章:

Python Matplotlib - 未对齐的网格线和颜色填充

r - 每个日期时间的事件数 R

r - 使用 ggmap 和 ggplotly

r - 在 R 中创建 2D bin

opengl - 现代图形管道有多少帧深?

r - R 中的 corrplot 参数

R:仅当键值相同并且键在连续行中重复时,如何对行中的值求和?

java - 如何在jpanel上绘制椭圆

java - JFrame 在多个屏幕上的位置

r - 如何在 R Studio 中绘制具有 13 个节点的二叉树