【问题标题】:hmisc hist in R with densityR中的hmisc hist与密度
【发布时间】:2013-10-02 10:17:38
【问题描述】:

我正在尝试为 R 中的数据框绘制直方图。我正在使用 Hmisc 包来做同样的事情。它为分类数据生成了一个非常好的图,除了一个问题。它显示频率而不是概率。请在下面找到一个代码示例(来自包文档,虽然我的数据是分类的但没关系):

x <- rnorm(200,0,2)+1; y <- x^2
x2 <- round((x+rnorm(200))/2)*2
x3 <- round((x+rnorm(200))/4)*4
dfram <- data.frame(y,x,x2,x3)
hist(dfram)

如何修改上面的图以显示归一化频率?

我已经尝试过hist(dfram, type='density'),但type ='density' 是 histSpike 函数的参数,用于绘制内核密度。我也尝试过hist(dfram,f=F)hist(dfram,prob=T)(据我了解,它们基本相同),但直方图仍显示频率。

【问题讨论】:

    标签: r hmisc


    【解决方案1】:

    获取hist 的输出,其中包含$density 中的归一化频率,并绘制(例如barplot)这些结果。
    也就是说,

    foo<-hist(dfram)  #although you probably wanted hist(dfram$y) or some such)
    barplot(foo$density)
    

    【讨论】:

    • 嗨,我正在使用 Hmisc 包中的 hist.data.frame 函数。我尝试了你的建议,但它对我不起作用。您的建议适用于基本包中的 hist 函数。附上另一个例子,使问题更加清晰。 a&lt;-data.frame(sample(c(0,1),1000,replace=T),sample(LETTERS[1:2],1000,replace=T))hist(a)
    • @AjinkyaGhorpade 查看Hmisc::hist 的帮助文件并查看返回的值。最有可能的是密度或至少 bin 数量可用。如果是后者,只需根据自身标准化 bin 数量。
    • 我确实检查了返回值。该函数只返回绘制的页数。
    • 那么我的建议是对每个数据集使用graphics::hist,然后使用ggplotgrid 构建多图
    猜你喜欢
    • 2018-08-29
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2023-03-09
    • 2019-08-28
    • 1970-01-01
    相关资源
    最近更新 更多