2011-04-17 7 views
4

J'essaie d'obtenir la fréquence maximale sur un graphique d'histogramme. J'ai une liste de valeurs. Ensuite, je fais ce qui suit:R histogramme - gamme de fréquences

hist(list, breaks=length(list), freq=TRUE) 

et il fait automatiquement les plages pour les axes x et y. L'axe y correspond aux fréquences et l'axe x correspond aux valeurs de la liste. Alors, comment puis-je trouver la fréquence maximale qui apparaîtra sur ce graphique? J'essaie de faire une légende dans le coin supérieur droit de mon graphique, donc j'ai besoin d'obtenir la valeur de fréquence maximale. Ou y a-t-il un moyen de dire à R de mettre une boîte de légende dans le coin supérieur droit d'un graphique?

+0

est la fonction 'histo' dans un paquet, ou avez-vous l'écrire , ou voulez-vous dire «hist»? – Greg

Répondre

6

Les valeurs de l'histogramme peuvent être stockés en tant que trame de données dans R . Prenant la 'liste' par exemple OP de dataframe, vous pouvez:

list_histo <- hist(list, breaks=length(list), freq=TRUE) 

tapant simplement

list_histo 

dans la R affiche le nouveau FRAM de données 'méta' e contenant des informations sur l'histogramme (Les données présentées ici est arbitraire et à des fins d'illustration):

$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" 

appeler la plus grande valeur est maintenant simple - en utilisant simplement

max(list_histo$counts) 

renverra la valeur maximale.

2
set.seed(100) 

x = rnorm(100, mean = 5, sd = 2) 

res = hist(x) 

res$mids[which.max(res$counts)] 

[1] 4.5 

Selon les pauses les largeurs des barres changeront, mais les mediums vous donnera le point médian de la barre que vous recherchez. Ceci trouve le point médian de la barre avec le nombre le plus élevé (fréquence maximale)

2

Au lieu de x, arguments y la légende, on peut utiliser legend('topright',...)

0

Vous pouvez également utiliser table(list)

Il renvoie une liste des valeurs et Tumber de fois où ils sont REPETE:

> 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 
Questions connexes