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 17:22 | Nová verze

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 163 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního

    … více »
    NUKE GAZA! 🎆 | Komentářů: 2
    včera 15:11 | Zajímavý projekt

    Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.

    Ladislav Hagara | Komentářů: 12
    včera 04:44 | Zajímavý software

    Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.

    Ladislav Hagara | Komentářů: 0
    20.3. 14:55 | Nová verze

    KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    20.3. 13:22 | IT novinky

    Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.

    Ladislav Hagara | Komentářů: 17
    20.3. 04:44 | Zajímavý článek

    Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).

    Ladislav Hagara | Komentářů: 2
    20.3. 00:33 | Nová verze

    Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    20.3. 00:11 | Zajímavý software

    Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.

    Ladislav Hagara | Komentářů: 7
    19.3. 19:22 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1133 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: Interaktivní vykreslování grafu

    1.7.2016 10:28 28734
    Interaktivní vykreslování grafu
    Přečteno: 616×
    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.