Portál AbcLinuxu, 14. července 2025 21:04


Dotaz: Histogram v gnuplotu

6.12.2009 18:05 Karel Machacek
Histogram v gnuplotu
Přečteno: 1668×
Odpovědět | Admin
Dobry den,

uz den se pokousim v gnuplotu vykreslit jednoduchy histogram a stale se mi nedari. Procetl jsem cele toto http://www.gnuplot.info/docs/node249.html, ale nic z toho neni co potrebuji.

Mam vygenerovany vzorek 1000 pseudonahodnych cisel v intervalu 0 az 1. Histogramem chci dokazat, ze dany generator generuje rovnomerne rozlozeni - histogram by tedy mel byt pekne zarovnany.

V datovem souboru mam tedy 1000 desetinnych cisel, jedno cislo na radek. Potreboval bych histogram udelat napriklad tak, ze prvni sloupec bude vyjadrovat kolik z tech 1000 cisel padlo do intervalu 0.0 - 0.1, dalsi sloupec kolik do intervalu 0.1 - 0.2 atd. A prave toto se mi stale nedari gnuplotu vysvetlit, muzete mi prosim poradit?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (chearius)
6.12.2009 20:46 l4m4
Rozbalit Rozbalit vše Re: Histogram v gnuplotu
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ for x in $(seq 1000); do eval "echo $[RANDOM % 1000]"; done >data
$ gnuplot
> bin(x,size) = floor(1.0*x/size)*size
> plot 'data' u (bin($1,20)):(1) smooth frequency w boxes t 'Histogram'
size je velikost okýnka histogramu.

1.0 je tam proto, aby se gnuplot nerozhodl počítat s celými čísly.
7.12.2009 11:22 Karel Machacek
Rozbalit Rozbalit vše Re: Histogram v gnuplotu
Příloha:
Dobry, moc dekuji za reseni. Pokud pouziji co jste napsal, prikaz po prikazu, tak to funguje krasne. Problem je ze s mymi daty. V priloze posilam svuj datovy soubor data.txt.

Takto vypada vystup:
gnuplot> bin(x,size) = floor(1.0*x/size)*size
gnuplot> plot 'data.txt' u (bin($1,20)):(1) smooth frequency w boxes t 'Histogram'
Warning: empty x range [0:0], adjusting to [-1:1]
a samotny graf je jen jedna svisla rovna cara. Jediny rozdil co vidim, ze ze Vy jste si vygeneroval 1000 celych cisel, zatimco ja mam cisla realna.

Muzete mi prosim jeste poradit v cem je problem?
7.12.2009 11:36 chearius | skóre: 7 | blog: /dev/chearius | Heidelberg
Rozbalit Rozbalit vše Re: Histogram v gnuplotu
Chyba je pri pouziti te funkce bin - ve vasem pripade musite pouzit:
plot 'data.txt' u (bin($1, .1)):(1) smooth frequency w boxes t 'Histogram'
Sirka vaseho intervalu je totiz 0.1 a ne 20. Pri pouziti sirky intervalu 20 spadaji vsechna cisla do prvniho sloupce histogramu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.