我想以对数刻度绘制一些数据,但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(第一个数据点)的图。 有什么想法解决这个问题吗?
感谢大家!
答案 0 :(得分:3)
如果你看一下
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))
看起来像这样