如何绘制 R 中的对数刻度密度曲线直到极值?

2 plot r

我想以对数刻度绘制一些数据,但 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))
Run Code Online (Sandbox Code Playgroud)

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

谢谢大家!

Hen*_*nry 5

如果你看

plot(density(d), xlim=c(-100,100), type="b")
Run Code Online (Sandbox Code Playgroud)

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

> min( density(d)$x[density(d)$x >0] )
[1] 13.72479 
Run Code Online (Sandbox Code Playgroud)

造成你所看到的。您可以使用类似的方法防止密度估计值降至 0 或以下

plot(density(d, from=0.000001), log='x', xlim=c(1,23000))
Run Code Online (Sandbox Code Playgroud)

看起来像这样

在此处输入图片说明