2

这是我在(2021年更新:链接失效... http://s.yunio.com/87HT7f)中的数据文件,请下载并保存为mydata。

y<-scan("mydata")
hist(y,breaks=c(0,60,70,80,90,100),freq=TRUE)
axis(2,at=seq(0,20,length.out=5),labels=c(0,5,10,15,20))

有两个问题:

1.Warning message:  
In plot.histogram(r, freq = freq1, col = col, border = border, angle = angle,  :  
  the AREAS in the plot are wrong -- rather use freq=FALSE  

我只想要频率而不是概率,在 y 轴上计数的次数,如何使警告消息消失?

2.运行时

axis(2,at=seq(0,20,length.out=5),labels=c(0,5,10,15,20))  

20y轴上没有。

4

2 回答 2

2

对于第一个问题,这是一个警告,而不是错误。此警告表示每个条的视觉区域与其实际频率不对应 - 您可以从具有最大面积但频率仅为 5 的第一个条中看到它。

对于第二个问题,您必须在ylim=c(0,20)里面设置hist()才能看到数字 20,因为 y 轴比 20 短。函数axis()只绘制标签,它不会改变轴的长度(最初数字 20 没有空间)。

hist(y,breaks=c(0,60,70,80,90,100),freq=TRUE,ylim=c(0,20))
axis(2,at=seq(0,20,length.out=5),labels=c(0,5,10,15,20))
于 2013-04-06T14:18:22.020 回答
1

检查手册hist

freq:
     Defaults to 'TRUE' _if and only if_ 'breaks' are equidistant
     (and 'probability' is not specified).
于 2013-04-06T14:38:37.387 回答