2

我想以对数比例绘制一些数据,但 R 绘制的密度曲线并非从我拥有的第一个极端数据点开始。

以下是一些测试数据和我使用的命令:

d = c(1,1,1,2,4,7,10,20,40,100,200,600,1000,3000,15000,23000)
plot(density(d), log='x', xlim=c(1,23000))

不幸的是,我没有足够的声誉点来发布图像,但是如果您键入这两行,它应该会出现一个范围从大约 12 而不是 1(第一个数据点)的图。有什么想法可以解决这个问题吗?

谢谢大家!

4

1 回答 1

5

如果你看

plot(density(d), xlim=c(-100,100), type="b")

您会看到它采用正值和负值的特定值。x 的负值不会以对数刻度显示,最小的正值是

> min( density(d)$x[density(d)$x >0] )
[1] 13.72479 

造成你所看到的。您可以使用类似的方法防止密度估计变为 0 或更低

plot(density(d, from=0.000001), log='x', xlim=c(1,23000))

看起来像这样

在此处输入图像描述

于 2013-10-20T17:42:07.663 回答