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 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 2
    dnes 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

    Ladislav Hagara | Komentářů: 3
    včera 13:00 | Nová verze

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 2
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (44%)
    Celkem 442 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník

    Dotaz: Interaktivní vykreslování grafu

    1.7.2016 10:28 28734
    Interaktivní vykreslování grafu
    Přečteno: 615×
    Hodil by se mi námět, jakým způsobem a v jakém jazyce co nejefektivněji vytvořit rozhraní pro interaktivní vykreslování grafů. Moje vize je následující:
    • Mám několik desítek datových sad (např. v různých textových souborech).
    • Potřebuji vyzkoušet, které z nich je nejvhodnější vykreslit do grafu. Musí to rozhodnout člověk, neexistuje způsob, jak to dělat automaticky.
    • Udělat z dat graf v gnuplotu nebo pythonu není problém, komplikací je vyzkoušení různých kombinací zobrazených dat. Není možné hrubou silnou vyzkoušet všechny kombinace, ani není ideální konvergovat k finální grafu tak, že vždy budu ve skriptu měnit kombinace dat a znovu to vykreslovat.
    • Představuji si, že by mohlo jít udělat relativně jednoduché grafické rozhraní, kde v jednom panelu bych měl seznam možných datových řad, v druhém vykreslený graf. Graf by se v aktuálním čase překresloval podle vybraných dat k zobrazení, různé kombinace by tedy šlo vyzkoušet relativně rychle.
    • Ideálně by mohl jít graf interaktivně otáčet (3D).
    • Většinu parametrů grafu bych měnil např. v gnuplot skriptu - jsou to věci, které by se měnily jen málokdy.
    Jde o relativně soukromou věc, nic komerčního a nemusí to být přiliš robusní.

    Máte nějaké tipy, jak toto co nejjednodušeji vytvořit? Uvažoval jsem o perlu, ale nemám zkušenosti, jak v něm dělat GUI. Případně, neexistuje již něco s funkcemi, které popisuji?

    Děkuji předem

    Odpovědi

    1.7.2016 10:46 MadCatX
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Pokud nemáš problém s C++ a Qt, možná bys mohl použít Q3DSurface. Nikdy jsem to nezkoušel, takže nevím, kolik boiler plate kódu bys okolo toho musel napsat. Na čistě 2D grafy je velmi solidní Qtčková knihovna Qwt.
    Jendа avatar 1.7.2016 11:06 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Já jsem lama, takže bych to, co chce tazatel, asi psal v Pythonu a matplotlib/SciPy.
    3.7.2016 11:50 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Pokud by to byla jediná možnost, s C++ problém nemám, ale bojím se, že bych zde musel dopisovat až moc věcí od nuly.
    Jendа avatar 1.7.2016 11:02 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Už pár let zoufale sháním něco, co je schopné prostě vykreslit data, aby v tom šlo browsit a zoomovat, ideálně aplikovat elementární filtry (FIR, integrace, …), ideálně běžet realtime (data chodí ze senzorů furt) a ideálně i třeba kreslit waterfall. Nic takového jsem nenašel.

    Velmi hrubě to aproximuje KST. Má to strašně moc funkcí, ale většinou ne ty, co potřebuju :-), a praštěné ovládání.
    3.7.2016 11:48 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Díky. Nevíš, zda toto umí 3D grafy, v dokumentaci jsem je nenašel.
    1.7.2016 11:09 NN
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    3.7.2016 11:46 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Pokud koukám dobře, toto 3D grafy neumí ...
    1.7.2016 11:41 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Jelikož takové věci dělám, tak prostě webová appka s klikátky --- Python stack: Django jako web framework, Dajaxice/Dajax pro Ajax + JS knihovna FlotCharts nebo Flot nebo klidně přímo Matplotlib. Dajaxice/Dajax už autor pohřbil, ale udržuje se fork na Githubu (jelikož mám desítky tisíc řádků v tom napsané i já, tak si to udržuju taky).

    Místo Djanga (je-li to pro někoho kanon na vrabce) lze použít i Flask či Bottle a ajaxovou stránku věci napsat přímo.
    3.7.2016 11:53 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Díky, dost možná to tak dopadne. Neměl bys nějaký kód na 3D grafy, o který by ses podělil, ať nemusím začínat od píky? ;)
    3.7.2016 18:05 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Příloha:
    Jak říkám, kombinuju JS a Matplotlib. Data naexportuješ jako cvs apod. Matplotlib ale neumí grafy otáčet, takže (a s tím osobní zkušenost nemám) bych zkusil něco z toho, co například používá pythonovský SageMath -- buď nějakou JS knihovnu (mají three.js?) nebo javovský jmol.

    Poslední dobou jede plotly (tím spamují každičké fórum a komunitu na G+, čímž mi lezou neskutečně krkem), což je dost schopná věc s API pro Python, R aj. Jede i v offline modu. Oni totiž chtějí dost peněz za nasazení na servery apod. Když člověk nefunguje v offline modu, chce to po něm jméno a key atd. Ale nějakou dobu se dá plotly nainstalovat přes pip a pak aktivovat offline mod (viz níže). A s těmi grafy se dá otáčet (JS).

    Dejme tomu, že máš soubor s daty, ty nahraješ buď přes numpy, nebo třeba Pandas (což je pythonovský balík pro časové řady atd.). Já udělal csv soubor tak, že jsem do něj vyexportoval hodnoty z definované funkce. No to je fuk, prostě teď přejdeme na vykreslení pomocí plotly v offline režimu v Jupyteru (iPython notebooku).
    import plotly
    from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
    init_notebook_mode()
    
    plotly.offline.init_notebook_mode()
    
    import plotly.graph_objs as go    
    import pandas as pd
    
    z_data = pd.read_csv('data_3d.csv')
    
    data = [
        go.Surface(
            z=z_data.as_matrix()
        )
    ]
    
    layout = go.Layout(
        title='3D graf',
        width=800,
        height=650,
    
    )
    
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, filename='elevations-3d-surface', show_link=False)
    
    Výsledek v příloze. Ovšem konkrétně řešení pro tebe jen tak nenavrhnu. To, co přesně chceš, víš jen ty. :-) Ale vsadil bych na Python stack.
    3.7.2016 18:08 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Příloha:
    A tady ještě ten graf pootočený, viz přílohu.
    3.7.2016 18:38 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Pěkná ukázka, konkrétní řešení je samozřejmě na mě, především kvůli struktuře a zpracování dat, toto ale jako ukázka postačuje. Více méně by graf samotný nějak podobně mohl vypadat, ale příliš se mi nelíbí ten jejich online/offline mód. Druhý z nich je lehce složitější než přiložení knihovny, což by mohl být problém na některých strojích, online verze s licencování nepřichází v úvahu. Nebo nevíš, lze plotly nějak přiložit ke skriptu, aby byl nezávislý na stroji, tj. fungoval tam, kde je jen "základní" Python? Možná je to triviální dotaz, ale s knihovnami v Pythonu nemám zkušenosti a na podobný dotaz streja google neodpověděl.
    3.7.2016 19:05 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Nevím, jestli rozumím dotazu. Jako přiložit knihovnu do adresáře podobně jako DLL u Win aplikací nebo JS u HTML? To asi ne, to není jeden soubor. :) To ať poradí někdo znalejší. Každý stroj, na kterém se spouští pythonovské kódy, které vyžadují numpy, scipy, matplotlib apod., musejí mít tyto knihovny/balíčky u sebe. Lze třeba udělat "izolované" prostředí, tzv. virtuální prostředí -- virtualenv, kde budou jen potřebné věci (výše jmenované), aniž by zasahovaly do systémového Pythonu. Vytvořím jako virtualenv pyenv, kde pyenv je mnou zvolený název, do něj se přepnu pomocí příkazu source /cesta-k-pyenv/bin/activate a v konzoli mi svítí, že pracuju z tohoto prostředí a všechny py skripty budou spuštěny odtud (což se lze přesvědčit dotazem which python, který vrátí cestu do toho adresáře a ne systémovou). Abych jako ocas nemusel psát celou cestu k virtuálním prostředím, udělal jsem si aliasy v profilu bashe: alias pyenv='source /cesta-k-pyenv/bin/activate'. Takže v konzoli stačí zadat pyenv a jsem tam. Z virtuálního prostředí se ven dostanu zadáním deactivate.

    Virtuální prostředí lze vytvořit i tak, aby vůbec neviděl pythonovské systémové věci a vše řídil jen na základě toho, co má v tom mnou definovaném adresáři. Abych nezapomněl, jakmile jsem v tom virtualenv, potřebné knihovny apod. instaluju normálně jako pip install balíček.

    Jestli chceš ještě větší míru izolace a hlavně přenositelnosti, pak prosím, sáhni po Dockeru. S tím si vyhraješ dosyta.

    3.7.2016 20:53 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Nevím, jestli rozumím dotazu. Jako přiložit knihovnu do adresáře podobně jako DLL u Win aplikací nebo JS u HTML? To asi ne, to není jeden soubor. :)
    Ano, dotaz jsi pochopil. Jdu se tedy učit s pythonem ;)
    3.7.2016 21:13 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Když napíšeš, v čem a zda vůbec jsi programoval, na jakém systému to budeš dělat atd., tak se ti pokusím v lecčems pomoci, abys ze začátku moc netápal.
    4.7.2016 07:59 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Vážím si nabídky, ale raději se budu ptát časem na konkrétní věci. Obecných návodů je na internetu mnoho a nepotřebuji plýtvat potenciálem geinálních mozků v tomto fóru :-)
    3.7.2016 18:18 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Sorráč, tady je čistější kód, špatně jsem ti to překopíroval z těch ukázek, zůstaly tam zbytečnosti atd.
    from plotly.offline import iplot, init_notebook_mode
    init_notebook_mode()
    
    import plotly.graph_objs as go    
    import pandas as pd
    
    z_data = pd.read_csv('data_3d.csv')
    
    data = [
        go.Surface(
            z=z_data.as_matrix()
        )
    ]
    
    layout = go.Layout(
        title='3D graf',
        width=800,
        height=650,
    )
    
    fig = go.Figure(data=data, layout=layout)
    iplot(fig, show_link=False)
    
    1.7.2016 20:26 Tany
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    NVD3 http://nvd3.org/

    3.7.2016 11:43 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Děkuji, toto ale asi neumí 3D grafy
    3.7.2016 23:55 ttt
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    d3 3d grafy umí, ale nezkoušel jsem je, nedokážu říct, jak moc je to komplikované. http://bl.ocks.org/supereggbert/aff58196188816576af0
    4.7.2016 01:09 Olaf
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    No ale ten kód je bruntální.
    1.7.2016 21:50 ehmmm
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Matlab? Ja vim, ten asi neprojde. Nevim, jestli by tohle umelo i Octave.
    3.7.2016 11:45 28734
    Rozbalit Rozbalit vše Re: Interaktivní vykreslování grafu
    Není důvod, proč by Matlab neprošel. Pokud bych věděl, že v něm výsledku dosáhnu podstatně efektivněji, použiji ho. Nevím ale, jak v něm udělat podobné grafické rozhraní, tak raději sáhnu po něčem univerzálnějším.

    Založit nové vláknoNahoru

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

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