Oblicz histogram
histogram zbiór n
(histogram zbiór n min max norm)
Oblicza rozkład wartości ze zbioru, tworząc n równomiernie rozmieszczonych przedziałów. Zakres przedziałów histogramu
może zostać ustalony przy pomocy opcjonalnych argumentów min i max (użyj wartości "auto
dla argumentu min jesli jedynie wartośc max ma zostać ustalona). Jeśli podany zostanie argument norm, pole histogramu
zostanie znormalizowane do tej wartości.
Utworzony histogram jest tablicą 4-elementowych tablic, każda odpowiadająca jednemu przedziałowi histogramu. Znaczenie elementów dla
każdego przedziału jest następujące: położenie środka przedziału na osi X; wysokość rozkładu w danym przedziale; błąd x (połowa szerokości
przedziału); błąd y (pierwiastek z liczby wartości zawartych w danym przedziale, opcjonalnie znormalizowany).
W POOL dostępna jest klasa plot_histo
oraz funkcja make_histo
, pomocne w tworzeniu wykresów histogramów; są one
zaimlementowane w pliku make_plots.l
. Opis ich użycia zawierają poniższe przykłady.
Przykład 1:
"a := (rnorm 10 2 1000)
print (histogram :a 10 5 15)
Rezultat wykonania:
{ {5.5 17 0.5 4.12310562561766}
{6.5 46 0.5 6.78232998312527}
{7.5 114 0.5 10.6770782520313}
{8.5 150 0.5 12.2474487139159}
{9.5 194 0.5 13.9283882771841}
{10.5 186 0.5 13.6381816969859}
{11.5 140 0.5 11.8321595661992}
{12.5 82 0.5 9.05538513813742}
{13.5 41 0.5 6.40312423743285}
{14.5 16 0.5 4} }
Przykład 2:
include "make_plots.l
"a := (rnorm 10 2 1000)
"h := (make_histo :a 10 5 15)
"cname := world @ :h
print :cname
setrange :cname {0 20} {}
(autoscale "Histogram "y)
"cfg := thing word :cname "_canvas_cfg
:cfg,"min_y := 0
wait 1000
(set_nbins 20) @ :h
Rezultat wykonania:
histogram
Przykład 3:
include "make_plots.l
to bars :d :n :c [:min 0] [:max 10]
use (plot_histo :d :n :min :max 1)
:style,"xerr := "none
setti "bar
setr (:max - :min) / :n
(settc :c 20)
to resize :new_n
setr (:max - :min) / :new_n
set_nbins :new_n
end
end
"j := 5000
"k := 3
"h := []
repeat :k [
push :h (anewp "pool $bars (rnorm repcount repcount/2 :j) 100 100*repcount)
]
setrange "pool {0 10} {0 1}
"s := (slider "|n =| {70 4} {10 200 1} 100)
setonchange :s [(resize getvalue :s) @ :h]
ht
Rezultat wykonania:
Wykresy histogramów o liczbie przedziałów sterowanej suwakiem.
Zobacz także:
Spis treści