我试图获得直方图图上的最大频率。我有一个值列表。然后,我执行以下操作:R直方图 - 频率范围
hist(list, breaks=length(list), freq=TRUE)
它会自动生成x和y轴的范围。 y轴是频率,x轴是列表中的值。
那么,我怎样才能找到这个图表上显示的最大频率?
我想在图的右上角做一个图例,所以我需要获取最大频率值。或者有没有办法告诉R将图例框放在图的右上角?
我试图获得直方图图上的最大频率。我有一个值列表。然后,我执行以下操作:R直方图 - 频率范围
hist(list, breaks=length(list), freq=TRUE)
它会自动生成x和y轴的范围。 y轴是频率,x轴是列表中的值。
那么,我怎样才能找到这个图表上显示的最大频率?
我想在图的右上角做一个图例,所以我需要获取最大频率值。或者有没有办法告诉R将图例框放在图的右上角?
直方图的值可被存储为R中的数据帧。服用OP的例子据帧 '列表',您可以:
list_histo <- hist(list, breaks=length(list), freq=TRUE)
只需键入
list_histo
回R将显示新的 '元' 数据FRAM包含有关直方图信息E(这里显示的数据是任意的,用于说明目的):
$breaks
[1] 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68
[16] 0.70 0.72 0.74 0.76
$counts
[1] 1 15 112 878 4734 17995 51094 110146 178855 216454
[11] 194536 130591 64218 23017 6117 1070 144 23
$intensities
[1] 0.00005 0.00075 0.00560 0.04390 0.23670 0.89975 2.55470 5.50730
[9] 8.94275 10.82270 9.72680 6.52955 3.21090 1.15085 0.30585 0.05350
[17] 0.00720 0.00115
$density
[1] 0.00005 0.00075 0.00560 0.04390 0.23670 0.89975 2.55470 5.50730
[9] 8.94275 10.82270 9.72680 6.52955 3.21090 1.15085 0.30585 0.05350
[17] 0.00720 0.00115
$mids
[1] 0.41 0.43 0.45 0.47 0.49 0.51 0.53 0.55 0.57 0.59 0.61 0.63 0.65 0.67 0.69
[16] 0.71 0.73 0.75
$xname
[1] "list_histo"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
调用最大值现在很简单 - 只需使用
max(list_histo$counts)
将返回最大值。
set.seed(100)
x = rnorm(100, mean = 5, sd = 2)
res = hist(x)
res$mids[which.max(res$counts)]
[1] 4.5
根据中断的宽度条会改变,但mids会给你你正在寻找的酒吧的中点。此发现具有最高计数的条(最大频率)的中点
相反x的,y参数传说,可以使用legend('topright',...)
您还可以使用table(list)
它将返回他们重复的时间价值和tumber的列表:
> list<-c(0.2, 0.6, 0.4, 0.5, 0.1, 0.5, 0.6, 0.6, 0.6, 0.1, 0.1, 0.6, 0.6, 0.6, 0.6)
> table(list)
list
0.1 0.2 0.4 0.5 0.6
3 1 1 2 8
> max(table(list))
[1] 8
是包中的函数'histo',还是你写,还是你的意思是'hist'? – Greg 2011-04-17 01:46:09