[MEGOLDVA] GNUplot + nagy fájl

Fórumok

Hello!

Kéne egy kis segítség. Van egy -számomra- hatalmas szöveges fájl (~2,7Mb), amiben egy oszlopban a következő adatok szerepelnek:
egy rakat 0
néhány 0,0001-tól egészen a 0,0300-ig
elenyésző esetben ebben a formátumban: 7,300001E-03
Ezeket az adatokat szeretném ábrázolni gnuplotban vagy akármiben, ami lekezel 665821 sornyi adatot. Gnumetric van a gépen, az nem tudta beolvasni az egész fájlt, gondolom OO.o-gal is ez lehet a helyzet, ezért gondoltam a gnuplotra, de nagyon nem értek hozzá. Első nekifutásra egy nagy piros foltot dobott ki. Beállítottam, hogy minden 50. és 100. értéket jelenítse meg, és akkor kaptam ezeket.
Nem tudom, hogy gondolta ki magának ezt az ábrázolást, nekem egy sima, egyszerű, még ennyire se bonyolult diagram se kell. Csak pár pont összekötve.

Előre is kösz!

Hozzászólások

probald 'with dots' vagy 'with points' modon plottolni, ha osszevissza vannak az adatok, akkor a vonalas abrazolas nem lesz tul informativ

és a háromszázezer hatszázezer sorból hogy szeretnéd kivenni az okszigént kiszámolni azt a "pár" pontot?

Azt nem ertem, hogy ha 0 es 0,03 kozott valtoznak az ertekek, akkor hogy lehet, hogy -2 es 11, valamint 0 es kb 240 kozott vannak abrazolva. A fuggetlen valtozod minden elemehez csak egy ertek tartozik, ugye?

(csak pusztan kivancsiva tettel: hova kell >600k meresi eredmeny?)

--
Debian lenny, 2.6.23

Ezt sem értem én se. Egymás alatt vannak felsorolva az adatok.
Az lehet, h bezavar, h 20-30 értékenként van 2-3 üres sor? Próbáltam kiszedni sed-del ( sed '/^$/d' ), de nem tűntek el. Szedjem ki egyesével? :P

Puszta kíváncsiságból válaszolok: szélmérés. Ösztöndíjért a suli környékén szélerősséget kell mérni, ezek pedig a hétvégi szélsebességekből generált feszültségek másodpercenként. Kb. Elég pici értékek, az tény.

Lehet a hiba forrása, h nem .(pont)-tal, hanem ,(vessző)-vel van elválasztva a tizedes érték?

Mivel ebben csak számok vannak, így talán egyszerűbb:

$ grep [0-9] szelmeres | sed s/,/\./g > szelmeres1

Így nem kell a "

set decimalsign ','

" parancsot használnod a gnuplot-ban. Szerintem nem kell elé seq oszlop sem, nálam tudta a gnuplot, s az ábra teljesen jó lett. Itt van:

http://kepfeltoltes.hu/080317/szelmeres_www.kepfeltoltes.hu_.jpg

plo '
------------
kiszedi az ures sorokat
-------------
pontyot tesz a vesszo helyere

Ez egy adatsor akar lenni?
Azert 600000 ponty osszekotve az elegge cifra is tud lenni ...
Az uj sort a gnuplot uj "adatszakadaskent" kezeli (megszakitja a vonalat)
A 250 az azert van, mert az ujsorok ...
Minden uj sor utan ujra kezdi (kvazi szmolja a sorokat, es az az x-ertek ...)\
szoval ha ~2400 250 ertekbol allo grafikont latsz ...
Ezt akarod?

k.

A sed '/^$/d' csak totál üres sorra működik. És ha van benne szóköz? Akkor sed 's/^ *$/d' kellene. És ha tabulátor? ...

Én inkább grep "[0-9]" -cel szűrném a releváns sorokat.

A sorok elé nem kell számot tenned, mert ezt magától beteszi a gnuplot (az aktuális sor számát használva).

az info meg eltunt ...
bocs

sed "s/\r$//" szelmeres | sed "s/,/./"
------------
kiszedi az ures sorokat
-------------
pontyot tesz a vesszo helyere

Ez egy adatsor akar lenni?
Azert 600000 ponty osszekotve az elegge cifra is tud lenni ...
Az uj sort a gnuplot uj "adatszakadaskent" kezeli (megszakitja a vonalat)
A 250 az azert van, mert az ujsorok ...
Minden uj sor utan ujra kezdi (kvazi szmolja a sorokat, es az az x-ertek ...)\
szoval ha ~2400 250 ertekbol allo grafikont latsz ...
Ezt akarod?

k.

Szoval amit latsz az jo ... az az ami a file-ban van ...
Van egy gany megoldasom arra az esetre, ha az egeszet egyben akarod latni:

plot '< grep -n "" szelmeres | sed "s/\r$/www/" | sed "s/:/ /" | sed "s/,/./"' u 1:2

remelem megjelenik ...

Ezt idezojel nelkul a gnupl;ot parancssoraba ...
Majdnem jo megoldas, de hat most csak ilyen jut eszembe ...

k.

Annó futottam én is ilyen "falba" (Véltlenül nem Kun Ferencnél írsz diplomamunkát Debrecenben), na mindegy. Én nem megoldottam a problémát, hanem megkerültem. Először ábrázoltam 1-150-ig..... Ha sorban vannak az x-y kordináták akkor ez simán egy ciklus, ha nem akkor kell írnod egy rendezést. Ez utóbbit tettem én is C-ben mgírtam a rendezést, (pár sor) utána gnuplottal ábrázoltam a tartományokat, png-képkimenetet kapott a gnuplot, majd gimppel öszehegesztettem őket szalaggá. Valahol meg is van a kép. 6XXX*2XX alakú (abszolút az aranmeccés esztéétikájának megfelelő kép :D).

Nos, kicsit favágós módszer, de most működik. A következő történt:
Gediben megnyitottam, kimásoltam azt a 3 üres sort, majd a "Cseré"-vel kitöröltem őket. Így most egész értelmes és elfogadható diagrammot kaptam. Ez bőven megfelel nekem. Köszönöm a segítő tanácsot mindenkinek!