【问题标题】:How to plot a log scale density curve in R ranging till the extreme values?如何绘制 R 中的对数刻度密度曲线,直到极值?
【发布时间】:2013-10-21 01:53:23
【问题描述】:

我想以对数比例绘制一些数据,但是 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 的图(第一个数据点)。 有什么办法解决这个问题吗?

谢谢大家!

【问题讨论】:

  • 查看density(d)的内容;是你所期望的吗?我很难准确理解您要完成的工作
  • hist(log(d)) 是不是看起来像你所追求的东西(虽然没有分箱)?
  • 如果你只是简单地绘制它,你可以看到曲线没有跨越整个数据范围(从 1 到 23000)。密度(d)的内容没有回答我的问题。另外,我不想绘制数据对数的直方图,我只想在 x 轴上使用对数刻度绘制密度曲线。

标签: r plot


【解决方案1】:

如果你看

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))

看起来像这样

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2012-09-15
    • 1970-01-01
    • 2021-08-17
    • 2018-05-09
    • 1970-01-01
    相关资源
    最近更新 更多