abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 10
    včera 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    včera 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

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

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 14
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Rozcestník

    Octave - 11 (kreslíme grafy)

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

    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: Kvalita a přesnost dat generovaných AI rozhodne o důvěře zaměstnanců v umělou inteligenci
    Týden na ScienceMag.cz: Působivá simulace pádu do černé díry
    Květnový výprodej na Goodoffer24 nabízí Windows 11 Pro za €20 a mnoho dalších slev

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

    Týden na ScienceMag.cz: Kosmologové se opět zkouší vypořádat se s problémem Hubbleovy konstanty
    Týden na ITBiz: Platby výkupného za ransomware vzrostly za poslední rok na pětinásobek
    Jaderné noviny – přehled za duben 2024
      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.