abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 2
    dnes 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    včera 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.

    Ladislav Hagara | Komentářů: 5
    včera 14:22 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 00:44 | Nová verze

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.7. 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 2
    15.7. 15:22 | IT novinky

    Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.

    Ladislav Hagara | Komentářů: 2
    15.7. 14:22 | Zajímavý software

    Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.

    Ladislav Hagara | Komentářů: 18
    15.7. 13:22 | Komunita

    První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní

    … více »
    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2152 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Octave - 11 (kreslíme grafy)

    5. 4. 2006 | Jiří Poláček | Programování | 14933×

    Jak Octave řeší grafický výstup, princip vykreslování čáry a kterak nastavit barvy, styly a legendu.

    Jak Octave řeší grafický výstup

    Octave ve snaze podobat se co nejvíce Matlabu obsahuje také podporu pro grafický výstup (ve smyslu kreslení matematických grafů). Samo o sobě však Octave grafy kreslit neumí - pro tento účel využívá program gnuplot (který je tudíž třeba mít v systému nainstalován). Z jistého úhlu pohledu by se dalo říci, že Octave funguje jako překladač kreslících funkcí z Matlabu do gnuplotu - jedním dechem je však nutno dodat, že se jedná o překladač velmi omezený, který zvládá jenom pár základních příkazů a nastavení. Pro plné využití všech možností gnuplotu máme v Octave k dispozici „nízkoúrovňové funkce“, díky kterým můžeme psát přímo příkazy gnuplotu nad daty z Octave. Následující texty se však budou zabývat především příkazy kompatibilními s Matlabem.

    Jak se kreslí čára

    Základní princip kreslení dvourozměrných grafů spočívá v zadání souřadnic bodů v kartézské soustavě - Octave vždy dva sousední body spojí úsečkou. Souřadnice bodů se zadávají jako dva vektory, jeden pro x-ové souřadnice a druhý pro y-ové; tyto dva (oba řádkové nebo oba sloupcové, ale hlavně stejně dlouhé) vektory pak figurují jako parametry funkce plot, která zajistí již samotné vykreslení grafu.

    Příklad - vytvořme ze čtyř bodů A[0,4], B[5,-2], C[1,-3] a D[3,8] lomenou čáru tak, že bod A bude spojen s bodem B, bod B spojen s bodem C a konečně také bod C spojen s bodem D:

    >> x=[0 5 1 3]; y=[4 -2 -3 8];
    >> plot(x,y)

    Mělo by se nám otevřít grafické okno gnuplotu vypadající podobně jako na následujícím obrázku:

    Grafický terminál gnuplotu s vykreslenou
lomenou čarou

    Vektor x postupně obsahuje x-ové souřadnice zadaných bodů, stejně tak vektor y obsahuje ve stejném pořadí y-ové souřadnice těch stejných bodů. Při vykreslování jsou pak sousední body spojeny úsečkou (tj. vykreslí se mezi nimi rovná čára). Pokud bychom chtěli zajistit, aby byl úsečkou spojen každý bod s každým, musíme to odpovídajícím způsobem zajistit v souřadnicových vektorech:

    >> A=[0 4]; B=[5 -2]; C=[1 -3]; D=[3 8]; body=[A;B;C;D;A;C;B;D];
    >> plot(body(:,1),body(:,2))

    Čtyři body, každý spojen s každým

    V grafu si také můžeme všimnout, že se automaticky nastaví měřítko grafu, vypíší hodnoty na osách a legenda grafu.

    Hned na prvních příkladech tedy vidíme, že výsledné grafy nemusí být těmi správnými grafy z hlediska matematické analýzy, i když právě ty nejspíš budeme chtít ve výsledku vidět. Efektu hladké křivky dosáhneme prostě tím, že spočítáme dostatečný počet souřadnic vykreslovaných bodů. Porovnejte sinusoidu vykreslenou z 11 a 201 bodů:

    >> x10=0:pi/5:2*pi;
    >> plot(x10,sin(x10))
    >> % versus
    >> x200=0:pi/100:2*pi;
    >> plot(x200,sin(x200))

    Sinusoida z 11 bodů

    Sinusoida z 201 bodů

    Uvědomme si u funkce sinus, že se počítá pro každý prvek vektoru x-ových souřadnic, čímž získáváme stejně dlouhý vektor y-ových souřadnic. Abychom si ušetřili čas s vymýšlením formule pro vektor lineárně rozložených x-ových souřadnic, můžeme používat funkci linspace, které zadáme dolní mez, horní mez a počet prvků výsledného vektoru:

    >> linspace(0,10,4)
    ans =
       0.00000   3.33333   6.66667  10.00000

    Více grafů, více barev

    Ve výchozím nastavení každé volání příkazu plot inicializuje výstupní zařízení, tj. smaže případný obsah z předchozích kreslících výstupů. Pokud chceme do grafu „přikreslovat“, nabízí se nám v podstatě dvě možnosti, které můžeme libovolně kombinovat. V prvé řadě můžeme podržet aktuální obsah výstupního zařízení s pomocí funkce hold. Volána s parametrem on tuto vlastnost zapíná, off značí výchozí stav mazání a konečně volání této funkce bez parametru přepíná z jednoho stavu do druhého. V jakém stavu se teď nacházíme, zjistíme funkcí ishold:

    >> plot(x,sin(x))
    >> ishold
    ans = 0
    >> hold on
    >> plot(x,cos(x))
    >> hold off

    Sinus a kosinus v jednom grafu

    Druhou možností je zadání všech grafů do jediného příkazu plot, který může mít variabilní počet parametrů:

    >> plot(x,sin(x),x,cos(x))

    Přesněji řečeno, funkce plot může zpracovat libovolný počet dvojic x-ových a y-ových souřadnic. Navíc za každou touto dvojicí může následovat třetí volitelný řetězcový parametr, který upřesňuje barvu a styl čáry, respektive popisek k ní. Začněme ilustračním příkladem:

    >> plot(0:5,5:-1:0,'^',0:6,6:-1:0,'Lm ',0:8,8:-1:0,'g*;popisek;' , \
    0:.1:9,9:-.1:0,'.3',1:10,9:-1:0,'-@78',2 :10,9:-1:1,'c;usecka;')

    Spousta čar s různými styly a barvami

    Za pomoci čísel, významových znaků a textů mezi středníky tak můžeme u každé vykreslované čáry určit:

    • typ grafu: čárový (výchozí) - -, tečkovaný - ., schodovitý - L, nebo vynášecí - ^
    • barvu určenou buď písmenem nebo číslem: r, g, b, m, c nebo w s příslušnými čísly 1-6, tj. v uvedeném pořadí červená, zelená, modrá, purpurová, azurová a bílá. Pokusy nasvědčují tomu, že i číslům 7-9 nějaké barvy přísluší.
    • bodový graf: buď přímo uvedením symbolu, který se má v daném bodě vykreslit - *, +, o, x, nebo číselně s tím, že v takovém případě je nutno uvést dvojciferné číslo - první cifra určuje barvu a druhá cifra symbol (opět lze experimentovat s čísly 1-9). V případě, že chceme bodový graf, měli bychom uvést, zda body mají - -@ nebo nemají - @ (výchozí předpoklad) být spojeny čarou.
    • popisek: uvádí se mezi středníky, například ;popisek;, středník na konci popisku nesmí chybět. Výchozí popisek zní „line“ plus pořadové číslo.

    Obecně nezáleží na pořadí, v jakém se znaky zapíší, přesto to chce trochu experimentovat a nebýt překvapen, že kupříkladu číselná reprezentace barev může na každém výstupním zařízení znamenat něco jiného.

    Příští povídání o Octave bude s grafy pokračovat, konkrétně se zaměří na měřítko os, popisky ke grafům a speciální dvourozměrné grafy.

    Nejčtenější články posledního měsíce

    Týden na ITBiz: Globální výdaje na služby veřejného cloudu letos překročí 1 bilion dolarů
    Týden na ScienceMag.cz: Poprvé přesně zachytili páry elektronů v supravodiči
    Jaderné noviny – přehled za květen 2026

    Nejkomentovanější články posledního měsíce

      všechny statistiky »

    Seriál Octave (dílů: 16)

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 10 (zbylé řídicí struktury)
    »—> Octave - 12 (měřítko os a speciální grafy)
    Octave - 16 (a co dál?) (poslední díl)

    Související články

    Octave - 1 (je to kalkulačka)
    Octave - 2 (počítání s maticemi)
    Octave - 3 (přístup k jednotlivým položkám matice)
    Octave - 4 (je to pravda?)
    Octave - 5 (práce s řetězci)
    Octave - 6 (práce se soubory)
    Octave - 7 (vlastní skripty a funkce)
    Octave - 8 (větvení programu)
    Octave - 9 (cykly)
    Octave - 10 (zbylé řídicí struktury)
    Octave - 12 (měřítko os a speciální grafy)
    Octave - 13 (dokončení grafiky)
    Octave - 14 (finance a statistika)
    Octave - 15 (špetka matematiky)
    Octave - 16 (a co dál?)
    Vektorový elegán Ipe
    Recenze: Kniha kódů a šifer
    Awk & sed: Příručka pro dávkové zpracování textu
    SETI@home
    Jak se píše procesor
    GnuCash - domácí účetnictví na úrovni
    Použití gnuplot pro tvorbu grafů v PHP
    Hra s písmenky - wxMaxima

    Odkazy a zdroje

    Octave

    Další články z této rubriky

    LLVM a Clang – více než dobrá náhrada za GCC
    Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
    Reverzujeme ovladače pro USB HID zařízení
    Linux: systémové volání splice()
    Programování v jazyce Vala - základní prvky jazyka
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    6.4.2006 07:44 GeBu | skóre: 27 | blog: zápisky
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    Znamená něco příkaz: "% versus", který je v textu v příkladu sinusovek s různou kvalitou?
    Jiří Poláček avatar 6.4.2006 08:25 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    znak % uvozuje komentář
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    6.4.2006 07:46 GeBu | skóre: 27 | blog: zápisky
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    Ve Windows verzi mi nefunguje "hold on" :(
    parse error:
    >>> hold on
    ^
    >> hold on
    parse error:
    >>> hold on
    Jiří Poláček avatar 6.4.2006 08:56 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    Vyzkoušel jsem teď tento příkaz ve windowsových verzích 2.1.36, 2.1.50 a 2.1.73 stažených z octave.sf.net a všude mi příkaz "hold on" bez problémů funguje. Vzhledem k tomu, že za příkazem hold se očekává textový parametr, zkuste hold 'on'.
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    6.4.2006 09:23 GeBu | skóre: 27 | blog: zápisky
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    Ty apostrofy zabraly. Děkuji za obě odpovědi.
    12.4.2006 23:56 asym | skóre: 5 | blog: Psychopat
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    V gnuplotu mi jde v pohode mysi rotovat 3D graf. Kdyz je ale volan z octave, tak to nejde. Jak je to mozne?
    Kdo nemá rád linux, ten si ho nezaslouží.
    Jiří Poláček avatar 14.4.2006 08:40 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    V případě vzdáleného volání gnuplotu z Octave není inicializována myš. Příkaz gset mouse před vyreslením grafu tuto nepříjemnost napraví.
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    22.4.2006 11:32 asym | skóre: 5 | blog: Psychopat
    Rozbalit Rozbalit vše Re: Octave - 11 (kreslíme grafy)
    nepomaha ani
    __gnuplot_set__ mouse
    Kdo nemá rád linux, ten si ho nezaslouží.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.