This is an old revision of the document!
Table of Contents
Vizualizace
Question set 1
Question 1: Klasifikace dat – atributy dat (typy) a jaké máme požadavky na vizuální kanály při jejich zobrazování
Atributy popisují vlastnosti jednotlivých datových položek. Rozlišujeme je do dvou hlavních kategorií na základě toho, zda mají nějaké přirozené pořadí:
- Nominální / Kategorické (Nominal / Categorical):
- Nemají žádné inherentní uspořádání (ve smyslu kvantity nebo velikosti).
- Slouží pouze k identifikaci nebo rozlišení.
- Lze je porovnávat pouze na rovnost (stejné/různé).
- Příklad: Lidé, města, typy nemocí, barvy (modrá, červená).
- Uspořádané (Ordered):
- Mají nějaké přirozené pořadí. Dále se dělí na:
- Ordinální (Ordinal): Jsou uspořádané, ale ne podle měřitelných intervalů. Známe pořadí, ale nevíme “o kolik” je jedna hodnota větší než druhá. (Příklad: Velikosti oblečení S, M, L, XL nebo dny v týdnu).
- Kvantitativní (Quantitative): Jsou uspořádané a umožňují aritmetické operace. Dělí se na:
- Diskrétní (Discrete): Hodnoty, které lze spočítat (celá čísla). (Příklad: Počet studentů).
- Spojité (Continuous): Mohou nabývat jakékoli hodnoty v daném rozsahu. (Příklad: Teplota, výška, váha).
U uspořádaných atributů dále rozlišujeme směr uspořádání:
- Sekvenční: Pohybují se od minima k maximu v jednom směru (např. výška hory).
- Divergentní: Dělí se do dvou skupin, které divergují v pozitivním a negativním směru od společného nulového/neutrálního bodu (např. nadmořská výška vs. hloubka oceánu).
- Cyklické: Hodnoty se vrací zpět k počátečnímu bodu (např. hodiny v den).
Datové sady lze rozdělit do několika základních kategorií podle toho, zda obsahují prostorové nebo abstraktní informace:
- Prostorová data (Spatial Data): Mají přirozené geometrické nebo topologické uspořádání (typické pro vědeckou vizualizaci - SciVis). Dělí se na:
- Pole (Fields): Reprezentují hodnoty distribuované v prostoru (každý bod má hodnotu). Jsou strukturována pomocí mřížek (Grids) skládajících se z pozic a buněk, ke kterým jsou přidruženy atributy (např. teplota, tlak).
- Geometrie (Geometry): Popisuje tvary a struktury objektů (sítě, vrcholy, hrany, stěny). Typicky nemají přímo přidělené datové atributy jako pole, ale definují samotný fyzický tvar (např. 3D model zeměkoule).
- Abstraktní data (Abstract Data): Nemají přirozené prostorové uspořádání. Jejich vizualizace vyžaduje nalezení vhodného mapování (doména informační vizualizace - InfoVis).
- Tabulková data: Uspořádána do řádků (položky/items) a sloupců (atributy).
- Relační data (Sítě / Grafy): Popisují vztahy. Skládají se z uzlů (nodes) a vazeb/hran (links), obojí může nést atributy.
- Textová data: Volně strukturovaná data (dokumenty, korpusy, logy).
- Kombinovaná a časově závislá data:
- Geografická data: Mají geometrii (lokaci na mapě), ke které jsou připojena abstraktní data (např. počet obyvatel).
- Časově závislá data: Atributy a/nebo topologie dat se mění v průběhu času.
Pro abstraktní data, která postrádají inherentní prostorovou složku (jako jsou tabulky), musíme atributům vizuální a prostorové charakteristiky uměle přiřadit. Kódování probíhá pomocí vizuálních kanálů:
- Kódování na pozici v 2D (Position): Pozice je zdaleka nejpřesnější a nejuniverzálnější vizuální kanál, ideální pro kvantitativní data.
- Pozice na společné škále (Position on common scale): Nejpřesnější způsob (např. klasický bodový graf). Umožňuje přesné porovnávání hodnot, protože všechny prvky sdílí stejnou referenční osu.
- Pozice na zarovnané škále (Position on aligned scale): Druhý nejpřesnější kanál (např. sloupcové grafy umístěné vedle sebe).
- Rozvržení os (Axis layouts): Pozici můžeme organizovat různými způsoby:
- Ortogonální osy: Klasický kartézský systém (osy kolmé na sebe).
- Neortogonální osy: Osy se protínají, ale nejsou kolmé (např. radiální/hvězdicové uspořádání).
- Paralelní osy: Osy umístěné rovnoběžně vedle sebe (tzv. paralelní souřadnice, výborné pro vícerozměrná data).
- Kódování pomocí tvaru a glyfů:
- Tvar (Shape): Silný kanál pro kategorická (nominální) data. Neimplikuje žádné uspořádání. Aplikuje se typicky na bodové značky (kruh pro jednu kategorii, čtverec pro druhou).
- Glyfy (Glyphs): Malé a často složité grafické symboly, které řeší problém velkého počtu atributů najednou. Různé parametry symbolu (délka ramen, velikost, barva, úhel) jsou mapovány na různé atributy daného záznamu.
- Příklady: Hvězdicové glyfy (star glyphs - atributy na paprscích), Chernoffovy tváře (využívají lidskou citlivost na rozpoznávání rysů obličeje).
4. Požadavky na vizuální kanály a Princip expresivity
Pro správnou vizualizaci je nutné vybrat vizuální kanály, které odpovídají typu atributu. K tomu slouží Princip expresivity (Expressiveness Principle), který říká, že vizuální kódování by mělo vyjádřit všechnu, a pouze tu informaci, která je obsažena v atributech datové sady.
Základní pravidla:
- Uspořádaná data by měla být zobrazena způsobem, který vnitřně vnímáme jako uspořádaný. Pokud data obsahují pořadí, měla by ho vizualizace jasně vyjádřit. K tomu slouží Kanály pro kvantitativní atributy (Magnitude Channels):
- Typické kanály: Pozice na společné ose (nejpřesnější), délka, úhel, plocha, svítivost barvy (luminance) nebo sytost (saturation).
- Neuspořádaná (nominální) data by neměla být zobrazena způsobem, který implikuje pořadí. K jejich zobrazení se využívají Kanály pro kategorické atributy (Identity a Grouping Channels):
- Typické kanály: Prostorová oblast, odstín barvy (color hue), tvar, pohyb.
- Tyto kanály slouží k rozlišení a seskupení, ne k vyjádření toho, že je něco “více” nebo “méně”. (Pokud bychom například pro různé typy ovoce použili gradient od světlé po tmavou, uživateli by to mylně naznačovalo, že jedno ovoce je nadřazeno druhému).
Dekompozice barvy jako příklad:
- Odstín (Hue): Neimplikuje pořadí, má vysokou rozlišitelnost $\rightarrow$ ideální pro kategorická (nominální) data.
- Svítivost a Sytost (Luminance & Saturation): Implikují uspořádání, lze určit co je světlejší/tmavší $\rightarrow$ ideální pro uspořádaná (kvantitativní a ordinální) data.
Question 2: Vektorová pole – vše o LIC (Integrální konvoluce čáry / Line Integral Convolution)
1. Co je LIC a základní princip
Line Integral Convolution (LIC) je pokročilá metoda vizualizace vektorových polí založená na texturách. Zatímco glyfy (šipky) nebo samostatné proudnice poskytují řídkou vizualizaci, LIC poskytuje hustou vizualizaci – informace o proudění je reprezentována v každém pixelu obrazu (podobně jako interpolace u skalárních barevných map). Vytváří dojem proudění pomocí vizuálního filtrování šumové textury.
Princip metody:
- Vstup: Používá se bílý šum (white noise) jako vstupní textura. Bílý šum nemá žádné předchozí korelace, což zajišťuje, že výsledné vizuální vzory vzniknou čistě z vektorového pole.
- Idea: Pro každý texel (pixel textury) se korelují hodnoty sousedních texelů podél proudnice (ve směru proudění) a nekorelují se hodnoty napříč prouděním (kolmo na směr).
- Výsledek: Podél proudnic jsou hodnoty textury vizuálně koherentní (plynulé) a my je tak dokážeme rozlišit od sousedních proudnic. To vytváří dojem čárových stop, které vizuálně přesně sledují směr vektorového pole.
Fungování metody lze popsat v několika krocích:
- Vytvoří se výchozí 2D textura bílého šumu, kterou označíme $T(x, y)$.
- Pro každý pixel výsledného obrazu se v daném vektorovém poli trasuje krátká proudnice, a to jak směrem po proudu (po směru vektoru), tak proti proudu.
- Intenzita (barva) tohoto pixelu se pak vypočítá jako funkce (nejčastěji průměr) hodnot textury šumu $T$ podél tohoto krátkého segmentu proudnice, který pixelem prochází.
- Zprůměrování hodnot šumu podél trajektorie způsobí “rozmazání” obrazu po směru toku, čímž vznikne jasný pocit pohybu a struktury, která vizuálně reprezentuje pole.
3. Vlastnosti a výhody metody LIC
- Hustá vizualizace: Informace o proudění je přítomna v každém pixelu (na rozdíl od řídkých glyfů).
- Laminární i turbulentní proudění: LIC je vynikající pro zobrazení obou typů proudění. V oblastech laminárního toku tvoří hladké paralelní čáry, zatímco v oblastech turbulence tvoří chaotické textury a jasně ukazuje víry.
- Aplikace na 3D povrchy: Ačkoliv se často používá ve 2D, metodu lze aplikovat i na 3D povrchy (např. proudění vzduchu obtékající karoserii automobilu), kde vytváří vizuální texturu ukazující tok přímo na geometrii.
- Kombinace s barevným kódováním: Tzv. Color-mapped LIC. Vzhledem k tomu, že klasický LIC ukazuje pouze orientaci (směr), lze jej podbarvit pomocí barevné mapy kódované podle dalšího skalárního atributu (např. rychlost toku nebo tlak).
Question set 2
Question 1: Interakce focus + context (význam, výhody, nevýhody, příklady využití a technik, výběr fokusu)
Význam (Princip): Fokus + kontext je obecný princip vizualizace, jehož základní myšlenkou je umožnit uživateli vidět objekt primárního zájmu (fokus) prezentovaný v plném detailu, a zároveň si zachovat celkový přehled o všech okolních dostupných informacích (kontext), a to vše v jednom jediném pohledu (tzv. technika vložení / embedding). K dosažení tohoto cíle se typicky využívá zkreslení prostoru (distortion).
Výhody:
- Udržení kontextu: Na rozdíl od čistého přiblížení (zoomování), kdy ztratíme přehled o zbytku dat, zde stále vidíme “kde se nacházíme”.
- Nižší kognitivní zátěž: Oproti technikám “přehled a detaily” (dvě oddělené obrazovky vedle sebe) nevyžaduje, aby uživatel vědomě přesouval pozornost mezi dvěma pohledy a nemusel si pamatovat kontext. Vše je integrováno.
Nevýhody:
- Zkreslení (Distortion): Protože se prostor pro kontext musí stlačit, aby udělal místo pro detailní fokus, dochází k deformaci obrazu. Tyto zkreslené části mohou být obtížně interpretovatelné a mohou narušit vnímání korelace a dalších vztahů mezi daty.
Typické techniky využívající princip Focus + Context:
- Přiblížení rybím okem (Fisheye Zoom): Kombinuje přiblížení a zkreslení. Položky blízko fokusního bodu jsou detailní s minimálním zkreslením. S rostoucí vzdáleností od fokusu se detail zmenšuje a zkreslení roste (např. centrální část sítě je detailní a okraje jsou stlačeny).
- TableLens: Pro tabulková data. Řádky a sloupce ve fokusu jsou zobrazeny v plném detailu (např. přesná čísla/texty), zatímco kontextové řádky/sloupce jsou stlačeny do menšího prostoru (např. agregované jako tenké čáry/grafy).
- Perspective Wall: Pro hierarchická nebo časová data. Vizualizuje se na “zdi”, která se uprostřed ohýbá směrem k uživateli. Střed je ve fokusu, boční (ustupující) části jsou zmenšeny perspektivou a poskytují kontext.
- Hyperbolic Tree Browser: Zobrazuje rozsáhlé stromy v hyperbolickém prostoru. Uzel ve fokusu (střed) má obrovský prostor pro zobrazení detailů. Se zvětšující se vzdáleností od středu se uzly exponenciálně zmenšují a houstnou na okrajích.
- Lexisova tužka (Lexis Pencil): Umožňuje zvětšit konkrétní “tužku” (reprezentující 3D časoprostorová data) ve 3D prostoru do fokusu, zatímco ostatní zůstávají menší.
Výběr fokusu probíhá interaktivně, na základě akce uživatele:
- Ukazováním / Pohybem kurzoru: Ve Fisheye zoomu uživatel pohybuje myší a to, co je pod kurzorem, se automaticky stává fokusem (dynamicky se zvětšuje).
- Kliknutím (Výběrem): V Hyperbolickém stromu nebo Slovním stromu (Word Tree) uživatel klikne na specifický uzel (např. větev stromu). Strom se dynamicky přeorientuje, přemístí vybraný uzel do centra (učiní jej fokusem) a zbytek grafu se kolem něj interaktivně přeskupí.
- Přetažením výběrového okna: V systémech jako SeeSoft (kde jsou sloupce kódu scvrklé do pixelů jako kontext) uživatel přetáhne okno s “lupou” přes danou oblast, což definuje fokus a zobrazí čitelný kód v odděleném panelu.
Question 2: Relační data – Sugiyamův rámec (Sugiyama framework)
Relační data (často označovaná jako grafová nebo síťová data) jsou struktury, jejichž hlavní charakteristikou je přítomnost vztahů mezi jednotlivými položkami. Ačkoliv často sdílejí formát s tabulkovými daty, zaměřují se primárně na propojení entit.
Skládají se ze dvou hlavních složek:
- Uzly (Nodes / Items): Reprezentují samotné entity (např. lidé v sociální síti, webové stránky, města).
- Vazby (Links / Edges): Reprezentují vztahy nebo interakce mezi uzly (např. přátelství, hypertextové odkazy, letecké linky).
Základní vlastnosti:
- Mohou vyjadřovat hierarchie (stromy) nebo libovolné vztahy (obecné sítě, orientované i neorientované).
- Spadají do kategorie abstraktních dat. Uzly typicky nemají předem dané prostorové souřadnice (na rozdíl např. od map), takže vizualizační algoritmus musí jejich pozice (tzv. *layout grafu*) uměle vypočítat tak, aby byla struktura sítě co nejčitelnější.
2. K čemu je Sugiyamův rámec dobrý (Účel)
Sugiyamův rámec (Sugiyama Framework) je široce používaný algoritmus, který řeší problém, jak prostorově uspořádat uzly u relačních dat.
- Je určený specificky pro výpočet hierarchického rozvržení stromů nebo orientovaných acyklických grafů (DAG).
- Je naprosto ideální pro úlohy, kde potřebujeme jasně komunikovat hierarchii, návaznosti nebo směr toku informací.
- Příklad využití: Zobrazení prerekvizit předmětů na univerzitě (předmět A musím splnit před předmětem B), analýza závislostí v softwarovém kódu, nebo zobrazení rodokmenu.
3. Jak to bude vypadat (Vzhled)
Výsledkem aplikace Sugiyamova algoritmu je velmi čisté, čitelné a elegantní uspořádání grafu, které se řídí přísnými vizuálními pravidly:
- Horizontální vrstvy: Všechny uzly grafu jsou úhledně seřazeny do zřetelných horizontálních vrstev (úrovní).
- Jednosměrnost hran: Zásadním rysem je, že všechny hrany směřují pouze jedním směrem (typicky shora dolů).
- Jasná hierarchie: Každý uzel-potomek se vždy nachází vizuálně ve vrstvě pod svým rodičem. Díky tomu algoritmus zamezuje vzniku matoucích zpětných smyček směřujících nahoru, což divákovi umožňuje okamžitě pochopit celou strukturu od kořene až po listy.
4. Kroky algoritmu (Sugiyama Framework)
Algoritmus se skládá ze šesti na sebe navazujících kroků:
- Krok 1: Odstranění cyklů (Remove cycles)
- Pokud vstupní graf není DAG (tedy obsahuje cykly), musí se rozbít.
- Provede se to tak, že se v každém cyklu dočasně přepne směr (otočí šipka) jedné hrany.
- Krok 2: Přiřazení uzlů do vrstev (Assign layers to nodes)
- Každému uzlu je přiřazena vrstva podle topologického uspořádání.
- Platí pravidlo: Každý uzel-potomek musí být v nižší vrstvě než jeho rodič.
- Krok 3: Redukce dlouhých hran (Reduce long edges)
- Dlouhé hrany, které přeskakují přes jednu nebo více vrstev, by rušily strukturu.
- Řešením je vložení virtuálních uzlů (dummy nodes) do všech vrstev, které se nacházejí mezi nesousedícími vrstvami. Původní dlouhá hrana se tak rozdělí na sekvenci kratších hran.
- Krok 4: Agregace virtuálních uzlů (Aggregate virtual nodes) - Volitelný krok
- Pokud více hran směřuje ze stejného výchozího uzlu, jejich virtuální uzly v nižších vrstvách lze sloučit (agregovat).
- Výjimka: Neagregují se uzly u hrany, jejíž směr byl otočen v kroku 1.
- Krok 5: Redukce křížení hran (Reduce edge crossings)
- Kritický optimalizační krok pro čitelnost.
- Provádí se změnou pořadí (prohazováním pozic) uzlů v rámci jejich příslušné vrstvy (zleva doprava), čímž se minimalizuje vizuální křížení čar.
- Krok 6: Přiřazení souřadnic (Assign coordinates)
- Vypočítají se exaktní (x, y) souřadnice pro všechny uzly podle jejich velikosti a počtu potomků.
- Virtuální uzly se z vizualizace odstraní.
- Hrany, které byly otočeny v kroku 1, se přepnou zpět do svého původního směru.
Question set 3
Question 1: Časová data - primitiva, domény, problémy a typy vizualizace
Časová primitiva slouží k ukotvení dat v čase. Dělí se na ukotvená a neukotvená:
- Ukotvená primitiva (Anchored): Vážou se na konkrétní místo na časové ose.
- Okamžik (Instant): Reprezentuje jediný konkrétní bod v čase (např. 25. května 2026 ve 13:30).
- Interval (Interval): Reprezentuje dobu mezi dvěma ukotvenými okamžiky, tedy má začátek a konec (např. přednáška od 11:00 do 12:30).
- Neukotvená primitiva (Unanchored): Nevyjadřují konkrétní pozici v čase, ale pouze velikost úseku.
- Rozpětí / Doba trvání (Span): Reprezentuje trvání v čase nezávisle na začátku nebo konci (např. přednáška trvá 2 hodiny - víme délku, ale nevíme od kdy do kdy).
2. Časová doména a struktura času
Časovou doménu můžeme matematicky modelovat a strukturovat různými způsoby:
Typy časových domén:
- Ordinální (Ordinal): Uvažují se pouze relativní vztahy a pořadí událostí, neřeší se přesná vzdálenost mezi nimi (např. událost A se stala před událostí B).
- Diskrétní (Discrete): Čas je reprezentován jako diskrétní body nebo intervaly (jako celá čísla). Mezi dvěma časy (např. den 1 a den 2) neexistuje žádný “mezikrok”.
- Spojitá (Continuous): Fyzikální model času. Čas je spojitá veličina (jako reálná čísla) a mezi jakékoliv dva okamžiky lze vždy vložit další.
Struktura časové domény:
- Lineární: Čas plyne jako přímá linie (zleva doprava / zdola nahoru). Ideální pro sledování celkových trendů (např. vývoj ceny akcií).
- Cyklická: Čas se reprezentuje jako spirála nebo kruh. Ideální pro vnímání opakujících se, sezónních vzorců (např. denní výkyvy teplot, kde jedna otočka je 24 hodin).
- Větvící se (Branching): Čas se větví do různých scénářů budoucnosti nebo minulosti. Používá se pro vizualizaci rozhodovacích procesů (co se stane, když vyberu možnost A vs. B).
3. Problémy s granularitou (zrnistostí) času
Granularita určuje velikost nejmenší jednotky času, kterou v datech rozlišujeme (vteřiny, dny, roky). Přináší několik výzev:
- Změna granularity v čase: Data se mohou zpočátku měřit detailně (v měsících) a později agregovaně (v letech).
- Přepínání granularity a nejistota (Uncertainty): Pokud máme data zaznamenaná v přesných okamžicích (např. 15. 5. 2026 v 11:20), ale chceme je zobrazit v hrubší doméně (dny), ořízneme čas na dny a ztrácíme detail. Pokud naopak máme hrubý údaj (15. 5. 2026) a potřebujeme ho zobrazit v sekundách, vzniká interval nejistoty (nevíme, kdy přesně během toho dne se to stalo).
- Nekompatibilní granularity: Ne všechna kvanta času se dají snadno převádět. Typickým příkladem jsou týdny a měsíce/roky – týdny se nepřekrývají přesně s kalendářními měsíci, což komplikuje agregaci.
4. Jak vizualizovat čas (Mapování a vizuální kanály)
Čas lze do vizualizace promítnout dvěma základními způsoby:
- Dynamické mapování (Čas $\rightarrow$ Čas / Animace): Fyzický čas přehrávání vizualizace odpovídá času v datech.
- *Výhoda:* Přirozené (žádná mentální konverze), dobré pro sledování vývoje 2D/3D polí (např. šíření bouře).
- *Nevýhoda:* Nevhodné pro analytické úlohy. Lidská krátkodobá paměť nedokáže přesně porovnat to, co vidí teď, s tím, co viděla před chvílí.
- Statické mapování (Čas $\rightarrow$ Prostor): Čas je namapován na osu nebo vizuální kanál.
- *Výhoda:* Umožňuje přímé vizuální srovnání hodnot napříč historií.
- Vizuální kanály pro kódování času:
- Pozice: Nejčastější a nejpřesnější (osa X).
- Délka: Používá se pro dobu trvání (rozpětí).
- Spojení: Šipky/čáry označující sekvenci (“element před” $\rightarrow$ “element po”).
- Svítivost / Průhlednost: Často se používá efekt “slábnutí” (fading away) – starší události jsou více průhledné nebo bledé.
5. Příklady technik vizualizace časových dat
Výběr techniky závisí na typu dat (zda jde o okamžiky, intervaly, prostorová nebo abstraktní data):
- Pro cyklická data:
- Spirálový graf: Čas plyne od středu ven, jedna otočka = 1 cyklus (rok/den). Skvělé pro hledání periodických vzorců.
- Cyklusový graf (Cycle Plot): Zobrazuje jak dlouhodobý trend, tak chování v rámci sezóny (např. uvnitř grafu jsou malé podgrafy pro každý den v týdnu napříč roky).
- Pro textové proudy (Streams):
- ThemeRiver / TIARA: Proud témat zleva doprava (řeka), kde šířka barevného pruhu indikuje frekvenci výskytu tématu v daném čase.
- Pro prostorová data (kombinace geografie a času):
- Lexisova tužka: 3D tužky postavené na 2D mapě, osa tužky nahoru značí čas. Na stěny tužky se mapují atributy.
- GeoTime: Zobrazuje 2D mapu jako základnu a čas jako vertikální 3D osu, do které se zakreslují cesty/trajektorie s postupem času.
- Pro intervaly a rozpětí:
- Ganttův diagram: Osa X je čas, osa Y jsou úkoly. Délka horizontálního pruhu ukazuje trvání intervalu.
- TimeNet (Rodokmeny): Horizontální čára pro každou osobu (od narození po smrt), přičemž větvení jasně ukazuje vztahy v přesném čase (kdy se překrývají generace).
Question 2: Vektorová pole – Streamlines, pathlines, streaklines a důvod jejich použití
1. Proč se tyto techniky s částicemi používají? (Motivace oproti glyfům)
Nejjednodušší vizualizací vektorových polí jsou glyfy (malé šipky umístěné v uzlech mřížky). Glyfy však mají pro komplexní analýzu zásadní nedostatky, které právě metody založené na trasování částic (proudnicové objekty) řeší:
- Problémy glyfů: Při hustých datech se šipky překrývají a vytváří vizuální chaos (clutter). Řídké glyfy naopak nedokážou jasně ukázat spojitost, protože lidský mozek neumí vizuálně interpolovat prostor mezi šipkami. V 3D je navíc velmi obtížné z glyfů poznat správnou orientaci kvůli perspektivnímu zkreslení.
- Výhody proudnicových objektů:
- Kontinuita: Proudnice vykreslují spojité čáry, takže plynule ukazují strukturu a cestu proudění.
- Globální pohled: Namísto ukazování izolovaného směru v jednom bodě jasně ukazují, odkud a kam částice směřují, jak vznikají víry a oblasti s vysokou turbulencí.
- Řeší otázky typu: “Kam bude proudit částice z bodu A?” nebo “Kde se na dráze vyskytuje turbulence?” (lze na ně totiž mapovat další atributy, jako barvu podle velikosti vorticity).
2. Rozdíl mezi Streamlines, Pathlines a Streaklines
Všechny tři techniky sledují “beztížné částice” (seed points) uvolněné do vektorového pole, ale zásadně se liší v závislosti na tom, zda se vektorové pole mění v čase (nestacionární/dynamické pole) nebo zůstává konstantní (stacionární/statické pole). U statického pole jsou všechny tři křivky vizuálně naprosto stejné, u dynamického se ale liší:
- Proudnice (Streamline):
- Používá se primárně, když se pole nemění v čase (stacionární pole).
- Je to čára, která je v každém svém bodě tečná k vektorovému poli v jednom daném (zmraženém) okamžiku. Ukazuje okamžitý snímek proudění.
- Trajektorie (Pathline):
- Používá se, když se pole mění v čase.
- Sleduje skutečnou fyzickou cestu (dráhu) jedné beztížné částice uvolněné z počátečního bodu, jak se pohybuje prostorem a časem. (Kudy částice reálně proletěla).
- Proudová čára (Streakline):
- Používá se, když se pole mění v čase.
- Představuje “stopu”, kterou za sebou zanechává barvivo (nebo kouř) nepřetržitě uvolňované z jednoho pevného bodu v prostoru během času. Je to křivka, která v daném čase spojuje všechny částice, které v minulosti prošly tímto jediným bodem.
3. Jak se trasují (Numerická integrace)
Získání těchto křivek vyžaduje matematický výpočet cesty částice.
- Startovací body (Seed points): Nejprve musíme do prostoru (mřížky) umístit startovací body. Lze to udělat náhodně, pravidelně, nebo sofistikovaněji (např. vkládáním do míst, kde je zatím prázdno), aby se rovnoměrně vyplnil prostor.
- Trasování: Z každého počátečního bodu provádíme numerickou integraci vektorového pole v malých časových krocích ($\Delta t$). V každém kroku zjistíme rychlost a směr v daném bodě (např. pomocí bilineární/trilineární interpolace okolních bodů mřížky) a posuneme částici o kousek dál.
- Metody integrace:
- Eulerova metoda: Jednoduchá metoda, kdy se částice posune přímo ve směru aktuálního vektoru. Je rychlá, ale méně přesná (při zatáčení “ustřeluje”).
- Runge-Kutta (např. metoda středu intervalu): Přesnější metoda vyššího řádu, která počítá odhad budoucí pozice, zjistí vektor v půli cesty a podle něj upraví finální směr. Poskytuje mnohem přesnější a plynulejší křivky.
Question set 4
Question 1: Tabulková data – Obecný popis, volba vizualizací a zdůvodnění
1. Obecná charakteristika tabulkových dat
Tabulková data jsou nejběžnějším formatem strukturovaných dat, organizovaným do řádků a sloupců (typicky databáze, Excel, CSV).
- Základní stavební kameny:
- Položky (Items): Řádky tabulky. Každý řádek představuje jeden záznam nebo entitu (např. jeden student, jeden produkt).
- Atributy (Attributes): Sloupce tabulky. Popisují vlastnosti položek (např. věk, jméno, cena). Množství atributů definuje počet dimenzí (jedná se o $n$-dimenzionální data).
- Buňka (Cell): Průsečík řádku a sloupce obsahující konkrétní skalární hodnotu.
- Abstraktní povaha:
- Tabulková data jsou ze své podstaty abstraktní data. Nemají žádné inherentní (přirozené) prostorové uspořádání ani časové souřadnice (pokud v nich nejsou explicitně jako atribut uloženy).
- Nelze u nich provádět interpolaci (obohacení dat), protože mezi položkami (např. dvěma dotazníky) neexistuje prostorová spojitost.
2. Jaké vizualizace použít pro spojité atributy a proč
Vzhledem k tomu, že data nemají vlastní prostorovou složku, musí vizualizace tyto abstraktní hodnoty uměle mapovat na geometrické vlastnosti. Nejpřesnějším vizuálním kanálem je kódování na pozici.
- Bodový graf (Scatterplot):
- Kdy použít: Pokud chceme zkoumat vztah mezi přesně dvěma spojitými atributy.
- Proč: Využívá pozici na společné 2D škále (ortogonální osy X a Y), což je nejpřesnější vizuální kanál. Okamžitě odhalí trendy, korelace a odlehlé hodnoty (outliers).
- Matice bodových grafů (Scatterplot Matrix - SPLOM):
- Kdy použít: Pro porovnávání vztahů mezi více spojitými atributy najednou (faceting).
- Proč: Řeší omezení 2D prostoru zobrazením všech možných párů atributů vedle sebe. Pro efektivní analýzu je nutné využít interakci Brushing and Linking (výběr v jednom grafu se okamžitě zvýrazní ve všech ostatních), čímž lze sledovat složitější vícerozměrné vztahy.
- Paralelní souřadnice (Parallel Coordinates):
- Kdy použít: Pro vysoký počet atributů (dimenzí), které by již ve SPLOMu byly nepřehledné.
- Proč: Místo kolmých os staví všechny osy rovnoběžně vedle sebe. Bod v $n$-dimenzionálním prostoru je zde zobrazen jako lomená čára protínající jednotlivé osy. Skvěle zobrazuje korelace (čáry se nekříží = pozitivní korelace, kříží se do tvaru X = negativní) a shluky, i když k plnému využití je nutná interaktivní permutace (přeskládání) os.
Při velkém počtu atributů lze využít i kódování pomocí tvaru, tedy tzv. glyfy. Ty fungují dobře, pokud počet položek není příliš velký (jinak dochází k překrývání / overplottingu).
- Obecné glyfy (Glyphs):
- Kdy použít: Když chceme najít podobnosti a rozdíly ve vizuálních rysech, abychom mohli položky seskupovat podle jejich celkového “profilu”.
- Proč: Mapují datové atributy na vizuální parametry geometrického symbolu (velikost částí, délku čar, úhly). Zásadní je sémanticky správné mapování (např. invertovat osy u negativních jevů, aby vizuálně “větší plocha” vždy znamenala celkově “lepší” stav).
- Hvězdicové glyfy (Star Glyphs):
- Kdy použít: Pro vizualizaci “otisku” jednotlivých záznamů. Často se skládají do mřížky nebo se umisťují do 2D scatterplotu (kde X a Y kódují 2 hlavní atributy a tvar glyfu kóduje zbytek).
- Proč: Osy (atributy) jsou rozmístěny do stejných úhlů kolem kružnice (ze středu ven). Hodnoty na osách jsou spojeny uzavřenou lomenou čarou, která tvoří unikátní polygonální tvar položky.
- Hvězdicový graf (Star Plot):
- Kdy použít: Pro porovnání menšího počtu položek mezi sebou přímo na jedněch osách.
- Proč: Na rozdíl od hvězdicových glyfů (kde má každá položka svůj vlastní glyf) se zde vykresluje více položek (lomených čar) na jednom společném hvězdicovém základu. Funguje jako kruhová varianta paralelních souřadnic. (Nevýhodou je méně místa pro rozlišení hodnot blízko středu).
- Chernoffovy tváře (Chernoff Faces):
- Kdy použít: Pro intuitivní a rychlé posouzení celkového “stavu” nebo “zdraví” položek na základě mnoha parametrů.
- Proč: Využívají evoluční výhodu lidského mozku, který dokáže extrémně rychle a precizně detekovat i drobné změny ve výrazu tváře. Atributy se mapují na rysy (velikost očí, sklon obočí, zakřivení úst). Klíčové je opět sémantické mapování (dobré hodnoty by měly vytvořit vizuálně šťastnou tvář).
3. Jaké vizualizace použít pro diskrétní/kategorické atributy a proč
U čistě kategorických dat (nominálních nebo ordinálních) selhávají výše zmíněné techniky (jako scatterplot nebo paralelní souřadnice), protože všechny body “napadají” na tytéž diskrétní hodnoty os (tzv. overplotting / překrývání), a my nevidíme skutečnou hustotu dat. Musíme proto přejít k agregaci a místo jednotlivých záznamů vizualizovat četnosti (frekvence).
- Kruhový graf (Pie chart):
- Kdy použít: Pro zobrazení distribuce (proporcí) v rámci pouze jednoho kategorického atributu.
- Proč: Velikost výseče přímo odpovídá agregovanému počtu položek v dané kategorii. Je to základní a jednoduchá metoda, ale neumožňuje vizualizovat vztahy mezi více atributy současně.
- Bargrams (Icicle plot):
- Kdy použít: Pro rychlý přehled o marginálních distribucích několika atributů nezávisle na sobě.
- Proč: Pro každý atribut se vytvoří jedna osa (horizontální pruh), která se rozdělí na úseky. Délka úseku je úměrná počtu položek v dané kategorii. Hlavní nevýhoda: Nelze z nich vyčíst vztahy mezi atributy (ukážou, kolik je dětí a kolik lidí přežilo, ale neukážou, kolik dětí přežilo).
- Paralelní množiny (Parallel Sets):
- Kdy použít: Pro zobrazení toků a vztahů mezi několika kategorickými atributy (jde o kategorickou variantu paralelních souřadnic, která řeší problém Bargramů).
- Proč: Propojují jednotlivé Bargramy pomocí rovnoběžníků (pásů). Šířka pásu je úměrná frekvenci položek, které sdílejí danou kombinaci kategorií. Dělí se stromově shora dolů a ukazují, jak se podmnožiny dat přelévají. Nezbytná je interakce (přeskládání os), aby bylo možné sledovat různé vazby.
- *(Poznámka: Pro omezení vizuálního chaosu u velkého počtu atributů lze použít tzv. Bundled layout (seskupené uspořádání), které propojuje pouze sousední osy a nesleduje čáry přes celou strukturu, čímž se ale ztrácí možnost vidět vícerozměrné závislosti napříč grafem).*
- Mozaikové grafy (Mosaic Plots):
- Kdy použít: Pro zobrazení proporcí a hierarchických vztahů mezi více kategorickými proměnnými jako alternativu k paralelním množinám.
- Proč: Rozdělují 2D prostor do vnořených obdélníků (rekurzivní dělení střídavě podle osy X a Y). Plocha každého obdélníku je přímo úměrná počtu položek v dané kombinaci kategorií. Skvěle komunikují hierarchii. Nevýhodou je, že porovnávání velikosti různě tvarovaných ploch je pro oko méně přesné než porovnávání šířky pásů.
- Matice mozaikových grafů (Mosaic Plot Matrix):
- Kdy použít: Pokud máme velké množství kategorických atributů a klasický mozaikový graf by byl příliš hluboce vnořený a nečitelný.
- Proč: Využívá principu facetingu. Vytvoří matici (podobně jako SPLOM u bodových grafů), kde se pro každou možnou kombinaci dvou atributů zobrazí samostatný, jednoduchý mozaikový graf. Umožňuje tak zkoumat dvourozměrné vztahy mezi všemi páry proměnných současně.
Question 2: Direct volume rendering, Average Intensity Projection (AIP) a vše o tom
1. Přímé objemové renderování (Direct Volume Rendering - DVR)
Přímé objemové renderování je pokročilá vizualizační technika pro zobrazení 3D objemových dat (např. CT nebo MRI skenů).
- Základní princip: Na rozdíl od *nepřímé vizualizace* (která z dat nejprve vytvoří 3D geometrii, např. síť trojúhelníků pomocí Marching Cubes), DVR neextrahují žádnou mezilehlou geometrickou reprezentaci. Zobrazuje 3D data přímo a mapuje vlastnosti objemu na pixely obrazovky.
- Ray Marching (Paprskový pochod): Základní algoritmus DVR. Pro každý pixel 2D obrazovky (kamery) se do 3D objemu vyšle světelný paprsek. Algoritmus po malých krocích “pochoduje” podél tohoto paprsku a v každém kroku odebere vzorek dat (interpoluje skalární hodnotu z mřížky).
- Vyhodnocení paprsku: Nasbírané vzorky podél paprsku se musí “zploštit” do jedné barvy pixelu. To se děje dvěma způsoby:
- Paprsková funkce (Ray function): Jednoduchá projekce, která vzorky sumarizuje (sem patří právě AIP nebo MIP).
- Integrace paprsku (Ray integration): Složitější metoda simulující fyzikální průchod světla (absorpci, emisi) s využitím přenosové funkce (Transfer Function), která vzorkům přiřazuje barvu a průhlednost (opacity).
- Výhody: Umožňuje pohled “dovnitř” objektu, zvládá poloprůhlednost (lze vidět kosti i kůži zároveň) a nabízí velkou flexibilitu zobrazení.
- Nevýhody: Extrémně vysoké výpočetní a paměťové náklady (musí se vzorkovat celý objem pro každý pixel).
Average Intensity Projection (AIP) (Průměrná intenzitní projekce) je technika patřící právě do oblasti přímého objemového renderování (Direct Volume Rendering - DVR).
Konkrétně se jedná o jednoduchou paprskovou funkci (Ray function) v rámci algoritmu Ray Marching. Jak bylo zmíněno, u DVR se neextrahují žádné mezilehlé geometrické povrchy (jako u izo-povrchů). Místo toho se z roviny obrazu (z pohledu kamery) vysílají paprsky skrz 3D objemová data a paprsková funkce AIP definuje, jak se vzorky nasbírané podél paprsku zploští do jediné barevné hodnoty výsledného pixelu.
3. Princip a matematický výpočet (AIP)
AIP funguje tak, že vypočítá průměrnou skalární hodnotu všech voxelů (vzorků) ležících podél daného paprsku a tuto průměrnou hodnotu následně namapuje na barvu/svítivost výsledného pixelu.
Matematicky to lze zapsat jako integrál skalárních hodnot podél dráhy paprsku vydělený délkou této dráhy:
$ I(p) = f\left(\frac{1}{T} \int_{t=0}^{T} s(t) dt\right) $
Vysvětlení vzorce:
- $I(p)$: Výsledná intenzita (barva) pixelu $p$ na obrazovce.
- $f$: Přenosová funkce (transfer function), která převádí vypočítanou průměrnou skalární hodnotu na barvu (nebo odstín šedi).
- $s(t)$: Skalární hodnota objemových dat v bodě na paprsku určeném parametrem $t$.
- $t \in [0, T]$: Parametr udávající polohu podél paprsku od místa vstupu do objemu ($0$) po místo výstupu ($T$).
4. Vlastnosti, využití a analogie (AIP)
- Rentgenová analogie (X-ray like): Průměrná intenzitní projekce je vizuálně ekvivalentní klasickému rentgenovému snímku. Rentgen také měří kumulativní hustotu (nebo průměrnou absorpci) materiálu, kterým paprsky prošly.
- Vzhled: V lékařské vizualizaci (např. CT sken trupu) se výsledný obraz často mapuje do odstínů šedi, kde černá barva znamená nízkou průměrnou hustotu (vzduch, měkké tkáně) a bílá znamená vysokou hustotu (kosti).
- Zobrazení hmoty: AIP je velmi dobrá pro zobrazení celkového množství materiálu nebo průměrné denzity v objemu. Poskytuje dobrou představu o vnitřních strukturách (na rozdíl od metod, které ukáží jen první povrch).
- Omezení hloubky: Stejně jako u klasického rentgenu, hlavní nevýhodou AIP je to, že neposkytuje žádné náznaky hloubky. Ze samotné 2D projekce nelze zjistit, zda se objekt s vysokou hustotou nachází blízko kamery, uprostřed objemu, nebo až na jeho konci. Výsledný obraz je pro vnímání 3D struktury čistě plochou (2D) projekcí.
Question set 5
Question 1: Barevný prostor HSV a nelinearita (percepční neuniformita) barevného prostoru
1. Barevný prostor HSV a jeho charakteristika
Barevný prostor HSV (Hue, Saturation, Value) je běžný model používaný v počítačové grafice pro popis barev, který barvu dekomponuje do tří nezávislých složek:
- Odstín (Hue): Určuje, o jakou barvu se jedná (červená, modrá, zelená…). Sama o sobě neimplikuje přirozené pořadí, proto se hodí pro kódování kategorických dat (např. různé regiony). V HSV tvoří “barevné kolo” s cyklickým uspořádáním (0–360 stupňů).
- Sytost (Saturation): Intenzita nebo čistota barvy (od šedé po plnou plnou barvu).
- Jas / Svítivost (Value / Brightness): Udává, jak je barva světlá nebo tmavá. Sytost a jas již implikují uspořádání, dají se tedy použít pro sekvenční (kvantitativní) atributy.
Problém HSV v praxi (Duhová škála / Jet Colormap): V HSV se velmi často tvoří tzv. duhová barevná škála. U vizualizace kvantitativních dat je ale velmi nevhodná, protože kombinuje změny odstínu i jasu způsobem, který lidské oko nedokáže rovnoměrně interpretovat.
2. Nelinearita (percepční neuniformita) barevného prostoru
Klíčovým problémem tradičních prostorů jako je HSV (nebo RGB a CIE XYZ) je jejich nelinearita z hlediska lidského vnímání, odborně nazývaná jako percepční neuniformita.
- Co to znamená: Vzdálenost (matematický rozdíl) dvou barev v barevném prostoru se nerovná vnímanému vizuálnímu rozdílu. Stejná matematická změna (např. o 10 jednotek v HSV) vyvolá v jedné části spektra obrovský vizuální rozdíl, zatímco v jiné části spektra si změny sotva všimneme.
- Důkazy z kolorimetrie (MacAdamovy elipsy): Tento jev se ilustruje pomocí tzv. MacAdamových elips v diagramu CIE xyY. Tyto elipsy ukazují oblasti, ve kterých jsou barvy pro lidské oko nerozlišitelné od středu elipsy. V grafu je jasně vidět, že tyto elipsy mají v různých částech barevného prostoru naprosto rozdílnou velikost a orientaci.
- Dopad na vizualizaci: Pokud na takový nelineární prostor (např. duhovou HSV škálu) namapujeme spojitá skalární data (např. teplotu), vznikne zkreslení (lie factor). Data, která plynule rostou, budou na obrazovce vytvářet umělé (falešné) hrany tam, kde barva vnímáním rychle “uskočí”, nebo naopak skryjí důležité detaily v oblastech, kde oko rozdíly špatně vnímá (často např. ve žluté nebo tyrkysové oblasti).
- Řešení: Pro přesnou vizualizaci kvantitativních dat se musí používat percepčně uniformní prostory, jako je CIELAB nebo HCL, kde stejná geometrická vzdálenost v prostoru zaručuje stejný vnímaný rozdíl v barvě (např. moderní škály jako Viridis nebo Plasma).
Question 2: Vektorová pole – Marching Squares
1. Co je Marching Squares a základní princip
Marching Squares je základní a nejznámější algoritmus pro 2D konturování. Slouží k extrakci izolinií (čar se stejnou zadanou hodnotou) ze 2D strukturované pravidelné mřížky, která má skalární atributy uložené v uzlech.
- Vstupy algoritmu:
- 2D strukturovaná mřížka se skalárními atributy v uzlech.
- Zadaná izo-hodnota (isovalue) $x$, pro kterou chceme kontury generovat.
- Výstup: 2D geometrie v podobě lomené čáry (polyline), která reprezentuje izolinii.
Postup algoritmu:
- (1) Pro každý uzel mřížky se určí, zda je jeho hodnota větší nebo menší (případně rovna) zadané izo-hodnotě $x$.
- (2) Prochází se mřížka buňku po buňce (každá buňka je 2D čtverec tvořený 4 uzly). Pokud má hrana buňky jeden uzel s hodnotou nad izo-hodnotou a druhý uzel pod ní, znamená to, že izolinie musí tuto hranu protnout.
- (3) Protnuté body se vypočítají a uvnitř buňky se spojí do čar (segmentů izolinie).
2. Dělení hran a topologické stavy
Abychom získali přesnou a plynulou linii, musíme zjistit, kde přesně na hraně mezi dvěma uzly izolinie prochází.
- Lineární interpolace: Bod průsečíku $q$ na hraně mezi uzly $p_i$ a $p_j$ (s hodnotami $v_i$ a $v_j$) se nevytvoří jen v polovině hrany, ale vypočítá se přesně pomocí lineární interpolace podle vzorce:
- $q = \frac{p_i(v_j - v) + p_j(v - v_i)}{v_j - v_i}$
- Topologické stavy:
- Každá 2D buňka (čtverec) má 4 vrcholy. Každý vrchol může mít 2 stavy (nad nebo pod izo-hodnotou). Celkem tedy existuje $2^4 = 16$ možných případů (topologických stavů).
- Pomocí symetrie a inverze lze těchto 16 stavů redukovat na 8 základních případů.
- Algoritmus používá předpočítanou lookup tabulku (vyhledávací tabulku), která pro každý z těchto stavů přesně říká, jak se mají vypočítané průsečíky na hranách uvnitř buňky spojit úsečkami.
3. Problém ambiguity a jeho řešení
Z 16 topologických konfigurací existují dva ambiguózní (nejednoznačné) stavy (často označované jako šachovnicové rozložení, např. stavy 0101 a 1010). V těchto stavech jsou dva protilehlé rohy čtverce nad izo-hodnotou a dva pod ní. U takové buňky není jasné, jak body spojit (zda vytvořit dvě linie jdoucí “shora dolů” nebo “zleva doprava”). Špatné spojení vede k vizuálním artefaktům (dírám a křížení) v konturách.
Jak tuto ambiguitu řešit?
- Dělení na trojúhelníky: Čtverec rozdělíme diagonálou na dva trojúhelníky. Trojúhelníky mají jen 3 vrcholy ($2^3=8$ stavů) a žádný z nich není ambiguózní. Ačkoliv to problém řeší, existují dvě různé diagonály, jak čtverec rozdělit, a volba diagonály stále ovlivní výsledný tvar izolinie.
- Asymptotický rozhodovač (Asymptotic Decider) - Přesné kontury: Metoda, která využívá bilineární interpolaci pro přesné modelování skalárního pole uvnitř buňky. Pole uvnitř buňky vytvoří tvar hyperbol, a asymptotický rozhodovač najde jejich středový průsečík (střed asymptot). Na základě hodnoty v tomto přesném středovém bodě určí, jak se mají vrcholy správně spojit.
Question set 6
Question 1: Integrace paprsku (Ray Integration) – Back to Front vs. Front to Back
1. Co je integrace paprsku a přenosová funkce
Integrace paprsku (Ray Integration) je pokročilejší metoda v rámci přímého objemového renderování (Direct Volume Rendering - DVR). Na rozdíl od jednoduchých paprskových funkcí (jako je MIP, které pouze promítne maximální hodnotu), integrace simuluje fyzikální optický model – jak světlo prochází objemem a interaguje s jeho obsahem (dochází k absorpci a emisi světla).
Klíčovým prvkem je zde přenosová funkce (transfer function). Ta mapuje skalární hodnoty vzorků (voxelů) podél paprsku na konkrétní optické vlastnosti – barvu a průhlednost (opacity). Výsledná barva pixelu na obrazovce pak vzniká “poskládáním” (compositing) těchto barev a průhledností podél celého paprsku.
2. Skládání zezadu dopředu (Back to Front Composition)
Při této metodě algoritmus prochází vzorky podél paprsku od nejvzdálenějšího bodu k nejbližšímu (od $i = n$ do $i = 0$, kde okem pozorovatele je 0).
- Princip: Intenzita emitovaná každým vzorkem je postupně absorbována předchozími (již zpracovanými) vzorky na cestě k oku.
- Výhody:
- Je to často intuitivnější, protože proces přirozeně odpovídá fyzikálnímu modelu (světlo se kumuluje od zdroje k pozorovateli).
- Z hlediska výpočtu potřebujeme řešit pouze jednu rovnici pro každý vzorek (počítá se pouze kumulace intenzity).
3. Skládání zepředu dozadu (Front to Back Composition)
Zde algoritmus prochází vzorky podél paprsku od nejbližšího bodu k nejvzdálenějšímu (od $i = 0$ do $i = n$).
- Princip: Během průchodu se postupně kumuluje jak výsledná barva, tak i celková průhlednost. Algoritmus si pamatuje, kolik světla ještě může projít dále do objemu. Výpočet vyžaduje řešení dvou rovnic (jednu pro intenzitu a druhou pro průhlednost).
- Výhody a Časné ukončení (Early termination):
- Hlavní a naprosto klíčovou výhodou této metody je možnost časného ukončení.
- Jakmile kumulovaná průhlednost (alpha) dosáhne hodnoty blížící se 1.0 (tj. materiál se stane plně neprůhledným), proces skládání pro daný paprsek se okamžitě zastaví.
- Všechny další vzorky za tímto bodem už by stejně nebyly viditelné, takže je zbytečné je počítat. To může výrazně zrychlit renderování, zejména u objemů s neprůhlednými strukturami.
Question 2: Mapování na barvu – Problémy a úskalí
1. Percepční neuniformita a problém duhové škály
Prvním zásadním problémem je nelinearita (percepční neuniformita) mnoha běžných barevných prostorů (např. RGB, HSV).
- V těchto prostorech matematická vzdálenost mezi dvěma barvami neodpovídá tomu, jak rozdíl vnímá lidské oko. Stejný číselný rozdíl v datech se může v jedné části barevného spektra jevit jako obrovský skok a v jiné jako neviditelná změna.
- Duhová škála (Rainbow / Jet Colormap): Je odstrašujícím příkladem tohoto problému. Není percepčně uniformní v odstínu ani v jasu. Vytváří falešné (umělé) hrany v místech rychlého vizuálního přechodu (např. kolem žluté a tyrkysové) a naopak skrývá detaily v oblastech, kde se barva mění vizuálně pomalu (např. v širokém zeleném pruhu).
- Řešení: Pro kvantitativní data je nutné používat percepčně uniformní prostory, jako je CIELAB nebo HCL (např. škály Viridis nebo Plasma).
2. Vnímání barvy je relativní (Vliv kontextu)
Lidské vnímání barvy a jasu není absolutní, ale je silně ovlivněno okolními barvami a vizuálním kontextem.
- Známým příkladem je Adelsonova iluze stínu: dva čtverce na šachovnici mají objektivně na pixel přesně stejnou barvu (šedou), ale kvůli kontextu (jeden je ve stínu válce a obklopen světlými poli, druhý je na světle obklopen tmavými poli) je náš mozek vnímá jako diametrálně odlišné barvy.
- V mapách a vizualizacích může barevné pozadí nebo sousedící prvky způsobit, že uživatel špatně odhadne skutečnou hodnotu kódovanou barvou.
3. Vliv velikosti a vzdálenosti
Přesnost s jakou dokážeme porovnávat barvy klesá s tím, jak se zmenšuje plocha objektu a jak daleko jsou objekty od sebe. Pokud barvou kódujeme hodnoty u velmi malých objektů (např. drobné body ve velkém scatterplotu, tenké linie), je pro oko extrémně obtížné rozlišit jemné rozdíly v odstínech nebo jasu.
4. Barvoslepost (Color blindness)
Designér musí počítat s tím, že ne všichni uživatelé vidí barvy stejně. Barvoslepostí trpí přibližně 8 % mužů a 0.5 % žen.
- Nejběžnější je červeno-zelená barvoslepost (Deuteranopie a Protanopie), kdy se obě barvy jeví jako podobné odstíny hnědé nebo šedé.
- Pokud vizualizace (nebo duhová škála) spoléhá na rozlišení kritických hodnot pomocí červené a zelené, stává se pro tyto uživatele nečitelnou.
- Řešení: Využívat “colorblind-friendly” palety (např. přechody z modré do žluté) a nespoléhat se nikdy *pouze* na odstín barvy (kombinovat barvu s jasem, tvarem nebo texturou).
5. Nesoulad typu dat a barevné škály
Dalším problémem je logické selhání, kdy designér vybere typ barevné škály, který neodpovídá typu atributu:
- Použití divergentní škály (dvě různé barvy rozbíhající se od světlého středu) pro sekvenční data (data rostoucí od minima k maximu, např. teplota oceánu). Způsobí to, že střední hodnoty se budou jevit jako falešná “nula” nebo neutrální bod, ačkoliv v datech žádný takový význam nemají.
- Naopak použití sekvenční škály pro divergentní data (např. výkyvy nad a pod průměrnou hladinu moře) nedokáže uživateli jasně ukázat hranici přechodu do záporných hodnot.
Question set 7
Question 1: Marching Cubes (3D konturování) vs. Marching Tetrahedrons
1. Princip algoritmu Marching Cubes
Marching Cubes je nejznámější algoritmus pro extrakci izo-povrchů (3D vrstevnic) ze 3D skalárních polí definovaných na pravidelné (strukturované) mřížce (tzv. voxelová data, např. z CT nebo MRI).
Postup algoritmu pro hledání vrstevnic (izo-povrchů):
- Vstupy: 3D strukturovaná mřížka s hodnotami v uzlech a cílová izo-hodnota (isovalue) $x$.
- Průchod (Marching): Algoritmus prochází mřížku buňku po buňce (každá buňka je 3D krychle – voxel).
- Klasifikace vrcholů: Pro každou krychli se určí, zda je hodnota skalárního atributu v jejích 8 vrcholech větší nebo menší než zadaná izo-hodnota $x$.
- Dělení hran: Na hranách krychle, které spojují vrchol s hodnotou nad izo-hodnotou a vrchol s hodnotou pod ní, se pomocí lineární interpolace vypočítá přesný bod průsečíku izo-povrchu.
- Topologické stavy a Lookup tabulka: Krychle má 8 vrcholů, což znamená $2^8 = 256$ možných případů (topologických stavů), jak ji může izo-povrch protnout. Pomocí rotací, inverze a symetrie se tento počet zredukuje na 15 základních topologických stavů. Algoritmus použije předpočítanou lookup (vyhledávací) tabulku, která definuje, jak se mají vypočítané průsečíky na hranách spojit do polygonů (obvykle trojúhelníků).
2. Problém ambiguity v Marching Cubes a jeho řešení
Hlavním problémem algoritmu Marching Cubes jsou tzv. ambiguózní (nejednoznačné) stavy.
- Vznik ambiguity: Nastává, když má stěna krychle (čtverec) střídavé hodnoty (ve tvaru šachovnice – dva diagonální rohy jsou nad izo-hodnotou a dva pod ní).
- Následek: V takovém případě existují dva různé způsoby, jak může izolinie (izo-povrch) stěnu protnout. Pokud algoritmus u dvou sousedících buněk vybere různé interpretace pro jejich sdílenou stěnu, vzniknou ve výsledném 3D povrchu vizuální artefakty – nežádoucí díry nebo trhliny.
- Řešení - Asymptotický rozhodovač (Asymptotic Decider): Aby se zajistila topologická správnost a zamezilo se vzniku děr, aplikuje se na každou ambiguózní stěnu asymptotický rozhodovač. Ten pomocí bilineární interpolace vypočítá průsečík asymptot hyperbol přímo uvnitř plochy dané stěny a na základě hodnoty v tomto bodě jednoznačně rozhodne, jak se mají polygony správně propojit.
3. Marching Tetrahedrons jako alternativa a srovnání
Marching Tetrahedrons je alternativní algoritmus, který řeší hlavní nedostatek Marching Cubes tím, že místo krychlí používá k rozdělení prostoru tetrahedry (čtyřstěny).
Princip:
- Každou kubickou buňku v pravidelné 3D mřížce lze dekomponovat (rozdělit) na 5 nebo 6 tetrahedrů.
- Algoritmus pak postupuje stejně jako Marching Cubes, ale pracuje nad těmito čtyřstěny.
- Čtyřstěn má pouze 4 vrcholy, takže existuje jen $2^4 = 16$ stavů (redukovaných symetrií na 8 základních).
Srovnání (Výhody a nevýhody Marching Tetrahedra oproti Cubes):
- Žádná ambiguita (Hlavní výhoda): Neexistují zde žádné ambiguózní stavy! Všechny topologické stavy pro tetrahedron jsou absolutně jednoznačné. Nehrozí tak vznik děr a není potřeba složitý asymptotický rozhodovač.
- Více polygonů (Nevýhoda): Protože se jedna krychle dělí na 5 nebo 6 čtyřstěnů, metoda vyprodukuje mnohem více polygonů, což zvyšuje paměťové a výpočetní nároky renderování.
- Problém se zarovnáním hran: Pokud se krychle dělí na 5 tetrahedrů, hrany na stěnách sousedních krychlí na sebe nemusí topologicky navazovat (jedna má diagonálu jinak než druhá). To se musí řešit zrcadlením (střídáním) vzoru rozdělení u sousedních buněk, aby na sebe trojúhelníky plynule navazovaly.
Question 2: First hit (Izo-povrchová funkce) - popis metody a její realizace
1. Co je metoda First hit (Izo-povrchová funkce)
Metoda First hit (první zásah), odborně nazývaná jako Izo-povrchová funkce (Isosurface function), je technikou patřící do oblasti přímého objemového renderování (Direct Volume Rendering - DVR).
Funguje jako specifická paprsková funkce (Ray function) v rámci algoritmu Ray Marching (paprskový pochod). Její hlavní myšlenkou je najít první místo podél vyslaného světelného paprsku, kde objemová data dosáhnou přesně námi zadané prahové hodnoty (izo-hodnoty $\sigma$), a v tomto místě vizualizovat povrch.
Vizuálně tato metoda produkuje prakticky stejné výsledky jako algoritmus Marching Cubes (vykreslí izo-povrch, např. povrch kosti v CT skenu), ale s jedním zásadním rozdílem: neextrahují se předem žádné 3D polygony (geometrie). Povrch se počítá a renderuje přímo z objemových dat za běhu.
2. Matematický princip a rovnice
Paprsková funkce matematicky ověřuje, zda zadaná izo-hodnota $\sigma$ na dráze paprsku vůbec existuje. Pokud ano, zobrazí barvu povrchu v místě prvního průsečíku. Pokud ne, zobrazí barvu pozadí.
Rovnice paprskové funkce “First hit” vypadá takto:
$I(p) = \begin{cases} f(\sigma), & \exists t \in [0, T], s(t) = \sigma \\ I_0, & \text{jinak} \end{cases}$
Vysvětlení proměnných:
- $I(p)$: Výsledná intenzita (barva) pixelu $p$ na obrazovce.
- $f(\sigma)$: Barva povrchu, který odpovídá izo-hodnotě $\sigma$ (často obohacená o stínování).
- $I_0$: Barva pozadí (pokud paprsek projde objemem a “nenarazí” na izo-hodnotu).
- $s(t)$: Skalární hodnota v objemu v bodě určeném parametrem $t$ na paprsku.
3. Jak bychom metodu realizovali (Postup algoritmu)
Realizace by probíhala softwarově nebo mnohem lépe hardwarově (GPU) pomocí algoritmu Ray Marching se zapnutým skládáním zepředu dozadu (front-to-back) pro včasné ukončení. Postupovali bychom v těchto krocích:
- Vyslání paprsků: Pro každý pixel 2D obrazovky zkonstruujeme paprsek, který z kamery prochází skrz náš 3D datový objem (např. voxelovou mřížku).
- Paprskový pochod (Krokování): Postupujeme podél paprsku po malých, předem definovaných vzdálenostech (velikost kroku / step size).
- Vzorkování: V každém kroku získáme aktuální skalární hodnotu z mřížky. Jelikož krok často nevyjde přesně do středu voxelu, musíme hodnotu vypočítat pomocí trilineární interpolace z okolních 8 uzlů.
- Detekce “zásahu” (Hit): V každém kroku zkontrolujeme, zda jsme “nepřekročili” hledanou izo-hodnotu $\sigma$. Uděláme to porovnáním hodnoty z předchozího kroku a aktuálního kroku (např. předchozí hodnota byla pod $\sigma$ a aktuální je nad $\sigma$).
- Zpracování prvního zásahu: Jakmile detekujeme tento přechod (to je náš “First hit”):
- Pomocí lineární interpolace mezi předchozím a aktuálním krokem najdeme naprosto přesnou pozici na paprsku, kde se hodnota rovná $\sigma$.
- V tomto bodě vypočítáme gradient (např. metodou centrální diference z okolních bodů mřížky). Tento gradient znormalizujeme a použijeme ho jako normálový vektor povrchu.
- Na základě tohoto normálového vektoru a pozice virtuálního světla aplikujeme osvětlovací model (např. Phongovo stínování), čímž získáme realistickou barvu povrchu včetně odlesků.
- Tuto barvu zapíšeme do našeho pixelu na obrazovce.
- Okamžité ukončení (Early ray termination): Protože nás zajímal jen první povrch (First hit), trasování tohoto paprsku okamžitě ukončíme, čímž ušetříme obrovské množství výpočetního výkonu.
4. Výhody a nevýhody oproti Marching Cubes
- Výhoda: Nepotřebujeme ukládat miliony vygenerovaných trojúhelníků do paměti (jako to dělá Marching Cubes). Povrch se generuje vizuálně za letu s přesností na každý pixel. Díky výpočtu přesných normál (gradientů) můžeme dosáhnout extrémně kvalitního vyhlazeného a stínovaného zobrazení.
- Nevýhoda: Vysoké výpočetní nároky, zejména pokud je izo-povrch hluboko v objemu a paprsky musí projít velkým množstvím prázdného místa (krokování stojí čas).
Question set 8
Question 1: Volumetrická data – Renderování, Back-to-front vs. Front-to-back a Přenosová funkce
1. Přímé objemové renderování a Integrace paprsku
Přímé objemové renderování (Direct Volume Rendering - DVR) je metoda vizualizace 3D volumetrických dat (např. CT, MRI skeny), která neextrahují žádnou mezilehlou 3D geometrii (jako to dělá např. Marching Cubes). Místo toho zobrazuje 3D objem přímo na 2D pixely obrazovky.
Integrace paprsku (Ray Integration): Je to pokročilejší metoda DVR (založená na algoritmu Ray Marching), která simuluje fyzikální optický model – jak světlo prochází objemem a interaguje s materiálem. Algoritmus po malých krocích “pochoduje” podél paprsku vyslaného z kamery a postupně kumuluje (integruje) optické vlastnosti vzorků, zejména emisi (materiál vyzařuje světlo) a absorpci (materiál pohlcuje světlo).
2. Skládání vzorků: Back-to-front vs. Front-to-back
Abychom získali výslednou barvu pixelu, musíme nasbírané vzorky podél paprsku postupně složit (compositing). Existují dva hlavní přístupy:
- Skládání zezadu dopředu (Back-to-Front Composition):
- Paprsek prochází objemem od nejvzdálenějšího bodu k nejbližšímu (od kamery).
- Princip: Intenzita emitovaná každým vzorkem je absorbována předchozími (již zpracovanými) vzorky na cestě k oku.
- Výhody: Je to fyzikálně a matematicky intuitivnější (odpovídá to toku světla ke kameře). Pro výpočet stačí kumulovat intenzitu (řeší se jen jedna rovnice pro každý vzorek).
- Skládání zepředu dozadu (Front-to-Back Composition):
- Paprsek prochází objemem od nejbližšího bodu k nejvzdálenějšímu.
- Princip: Při průchodu se souběžně kumuluje nejen barva (intenzita), ale i celková průhlednost (opacity). Počítají se dvě rovnice.
- Výhody a Časné ukončení (Early termination): Toto je klíčová výhoda této metody. Algoritmus průběžně sleduje kumulovanou neprůhlednost (alpha). Jakmile tato hodnota dosáhne limitu (blíží se 1.0, tedy plné neprůhlednosti), proces integrace se okamžitě zastaví. Všechny další vzorky za tímto bodem už by stejně nebyly přes neprůhlednou překážku vidět. To obrovsky zrychluje výpočet (ušetří se výpočetní čas u neprůhledných materiálů).
3. Přenosová funkce (Transfer Function) v integraci paprsku
Přenosová funkce je absolutně ústředním konceptem v přímém objemovém renderování. Je to mechanismus, který mapuje surové skalární hodnoty voxelů (např. naměřenou hustotu tkáně v CT) na optické vlastnosti: barvu (RGB) a průhlednost (Alpha/Opacity).
- Vlastnosti přenosové funkce:
- Na rozdíl od běžných barevných škál je často nelineární a umožňuje uživateli editaci (např. zdůraznit určitý rozsah dat a jiný zcela zneviditelnit). Definována bývá jako po částech lineární funkce (piecewise linear) nebo lookup tabulka.
- 1D Přenosová funkce: Mapuje jeden atribut (např. hustotu). Příklad: U CT lebky můžeme nastavit, že hodnoty kolem 3000 (kost) budou plně neprůhledné a bílé, zatímco nižší hodnoty (vzduch, měkké tkáně) budou plně průhledné, takže uvidíme jen lebku.
- 2D Přenosová funkce: Mapuje dva atributy současně. Typicky se používá kombinace hustoty a velikosti gradientu. Gradient ukazuje, jak rychle se hustota mění, což je skvělý ukazatel hranic mezi různými tkáněmi (např. rozhraní mezi dření a sklovinou u zubu). Pomocí 2D mapování dokážeme tyto povrchy velmi přesně barevně izolovat a vystínovat.
Question 2: Odlehlé hodnoty (Outliers) – Co to je, co znamenají a k čemu slouží
1. Co je to odlehlá hodnota (Outlier) a co znamená
Odlehlá hodnota (Outlier) je datová položka, která se výrazně liší od ostatních pozorování, nebo jinak řečeno: neodpovídá obecnému vzorci (trendu) či chování zbytku datové sady.
Co to může znamenat:
- Chyba měření nebo šum: Může jít o defektní senzor, překlep při zadávání dat nebo chybu v datovém toku.
- Kritická anomálie (narušení): Může se jednat o skutečnou, i když extrémně vzácnou událost, která je pro analýzu často tou nejdůležitější informací (např. havárie, útok, podvod).
2. K čemu je dobré je vizualizovat a detekovat (Vliv a Využití)
1. Kontrola a ověřování analytických modelů (např. Regrese):
- Pokud při automatizované analýze aplikujeme na data matematický model (např. proložíme je regresní přímkou), i jeden jediný silný outlier dokáže drasticky změnit sklon a posun této přímky, což vede ke zcela chybné interpretaci celého vztahu.
- Vizualizace (např. zobrazení bodového grafu s proloženou přímkou) nám umožní okamžitě vidět, že model selhává kvůli odlehlé hodnotě. Můžeme ji vizuálně identifikovat, interaktivně odfiltrovat a sledovat, jak se model zpřesní pro zbytek dat. (Slavným příkladem důležitosti vizualizace je *Anscombův kvartet*).
2. Praktické aplikace (Detekce anomálií): Odlehlé hodnoty se systematicky hledají (tzv. Outlier / Intrusion detection) v oblastech, kde běžné chování tvoří masivní masu dat a my hledáme “jehlu v kupce sena”:
- Kyberbezpečnost: Hledání abnormální aktivity v síti, která indikuje pokus o prolomení nebo zero-day útok.
- Bankovnictví a finance: Detekce podvodů s kreditními kartami (kdy transakce neodpovídá typickému chování uživatele).
- V těchto doménách se běžně využívá *Vizuální analytika* a speciální mantry jako “Search, Show Context, Expand on Demand”, protože ukazovat všechny miliardy normálních transakcí nedává smysl.
3. Vizualizace outlierů a výzvy v Big Data
- U menších datasetů snadno uvidíme outliery jako body stojící osamoceně v bodovém grafu (scatterplotu) nebo vizuálně detekované za “vousy” v krabicovém grafu (box plotu).
- Problém u Big Data: Když máme miliony záznamů a chceme použít např. Paralelní souřadnice, graf se stane černým obdélníkem (overplotting). Musíme provést agregaci (binning). Agregace ale zprůměruje data, a tím odlehlé hodnoty nenávratně skryje.
- Řešení - Outlier-preserving focus+context: Jedná se o pokročilou metodu pro Paralelní souřadnice, kdy se algoritmem nejprve oddělí masivní trendy od vzácných outlierů. Trendy se vykreslí jako průhledné široké pásy (kontext), zatímco outliery se vykreslí jako tenké, ostré a barevně odlišené čáry přes tento kontext. Díky tomu je zachována informace o celkových trendech, ale zároveň vizualizace nepřijde o tyto kritické anomálie.
Question set 9
Question 1: Vizualizační proces - jeho části a příklady interakce v každém kroku
1. Fáze vizualizačního procesu
Celkový vizualizační proces (tzv. vizualizační potrubí / pipeline) transformuje surová data na vizuální obraz. Lze jej rozdělit do čtyř hlavních logických operací:
- Data
- Obohacení dat (Data Enrichment): Fáze přípravy a modelování. Často zahrnuje interpolaci nebo aproximaci (vyplnění chybějících dat) pro vytvoření spojitého modelu z diskrétních vzorků (např. výpočet spojité mapy srážek z bodových měření meteorologických stanic pomocí Delaunayovy triangulace).
- Filtrování (Filtering): Redukce datové sady. Vybírá se pouze ta část dat, kterou chceme analyzovat, odstraňuje se šum a nerelevantní informace. Patří sem také vyhlazování dat (např. klouzavý průměr u časových řad).
- Mapování (Mapping): Toto je srdce vizualizačního procesu. Dochází zde k převodu dat na grafické (geometrické) primitivy (body, čáry, polygony) a přiřazování vizuálních kanálů (pozice, barva, tvar, velikost). Data se stávají vizuálními prvky.
- Renderování (Rendering): Poslední krok, kdy se z abstraktní reprezentace vizuálních prvků vytvoří konkrétní digitální obraz na obrazovce (2D obraz nebo 3D objekt). Zahrnuje řešení viditelnosti, překrývání, osvětlení a stínování.
- Obraz
2. Příklady interakce v jednotlivých krocích procesu
Uživatel je v interaktivní vizuální analytice součástí zpětnovazební smyčky a může aktivně zasahovat do všech částí vizualizačního potrubí:
- Interakce před procesem (Měnit/transformovat data):
- Příklad: Uživatel načte jiný datový soubor, změní formát dat nebo vybere jinou databázi.
- Interakce s obohacením dat:
- Příklad: Změna parametru nebo algoritmu obohacení – analytik přepne z lineární interpolace na kubickou interpolaci, aby získal hladší přechody v 3D objemových datech, nebo upraví hranici pro shlukování (clustering).
- Interakce s filtrováním (Dynamické dotazy / Dynamic queries):
- Příklad: Uživatel pomocí posuvníku (slideru) omezí zobrazená data jen na určitý časový rozsah (např. roky 2010–2020) nebo zaškrtávacím políčkem odfiltruje konkrétní kategorie. Vizualizace se okamžitě aktualizuje.
- Interakce s mapováním:
- Příklad: Uživatel změní vizuální kódování – vybere si jinou barevnou škálu (např. přepne z šedé škály na percepčně uniformní škálu Viridis), nebo změní mapování atributů (přepne osu Y z “Cena” na “Výkon” nebo změní tvar bodů z kruhů na čtverce).
- Interakce s renderováním:
- Příklad: V 3D vizualizaci (např. u objemového renderování lebky) uživatel interaktivně otáčí modelem, přibližuje kameru (zoom), mění úhel pohledu nebo upravuje pozici světelného zdroje pro lepší vnímání stínování a hloubky.
Question 2: Brushing a linking, dělení dat do jednotlivých pohledů
1. Organizace datových pohledů a dělení dat (Faceting)
Když máme komplexní nebo vícerozměrná data, kapacita jednoho grafu se rychle vyčerpá (dochází k vizuálnímu chaosu a překrývání). Řešením je rozdělit data do více pohledů (Organization of data views).
Základní techniky rozvržení:
- Juxtapozice (Juxtaposition): Zobrazení více pohledů vedle sebe.
- Superpozice (Superimposition): Překrytí více vrstev do jednoho pohledu (mapové vrstvy).
- Vložení (Embedding): Vložení detailního pohledu do širšího kontextu (Focus + Context).
Dělení dat (Faceting / Trellis / Small multiples): Specifickou strategií juxtapozice je vytvoření tzv. pohledů se sdíleným kódováním.
- Princip: Vizuální kódování (osy, barvy) je ve všech pohledech stejné, ale data se rozdělí (rozkouskují) mezi jednotlivé malé grafy.
- Příklady dělení: Můžeme data rozdělit podle času (každý graf je jeden rok) nebo podle kategorií (každý graf ukazuje trend pro jedno odvětví).
- Matice bodových grafů (SPLOM): Nejslavnější příklad pro multidimenzionální data. Data se rozdělí tak, že se vykreslí matice scatterplotů pro všechny možné páry atributů.
2. Brushing a Linking (Prořezávání a propojení)
Rozdělení dat do mnoha pohledů (jako je SPLOM nebo Paralelní souřadnice) sice řeší problém s místem, ale ztěžuje sledování jedné konkrétní položky napříč všemi grafy. Zde nastupuje nezbytná interakce Brushing and Linking.
- Brushing (Výběr štětcem / Prořezávání):
- Je to interaktivní výběr podmnožiny datových položek.
- Uživatel myší nakreslí výběrové okno (“štětec” nebo obdélník) přes určité body v jednom ze zobrazených grafů. Tím definuje rozsah zájmu (např. vybere shluk aut s nejnižší spotřebou).
- Linking (Propojení / Koordinované pohledy):
- Znamená, že všechny pohledy na obrazovce jsou datově provázány.
- Jakmile uživatel provede “brushing” (výběr) v jednom grafu, vybrané datové položky se okamžitě a automaticky zvýrazní (highlight) ve všech ostatních zobrazených grafech (a nevybrané položky se typicky vizuálně utlumí, zprůhlední).
- Význam a využití:
- Tato technika umožňuje analytikům sledovat, jak se vybraná skupina bodů chová v jiných dimenzích.
- Umožňuje objevovat skryté vícerozměrné korelace, shluky a anomálie, které by v izolovaném pohledu nedávaly smysl. (Např. vyberu shluk bodů v grafu Výkon vs. Spotřeba a okamžitě ve vedlejším grafu vidím, že všechny tyto body patří do kategorie těžkých vozidel v Evropě).
Question set 10
Question 1: Vizualizační řetězec - komponenty a možné interakce uživatele
1. Komponenty vizualizačního řetězce (Referenční model)
Celý proces transformace surových dat na srozumitelný obraz nazýváme vizualizačním potrubím (pipeline) nebo referenčním modelem. Skládá se z následujících fází:
- Data (Surová data): Vstup do systému získaný měřením, simulací nebo z databáze.
- Obohacení dat (Data Enrichment): Příprava dat pro vizualizaci. Zahrnuje budování modelů, interpolaci nebo aproximaci (např. vytvoření spojitého pole z diskrétních bodů).
- Filtrování (Filtering): Výběr podmnožiny dat. Dochází zde k redukci datové sady, odstraňování šumu a výběru relevantních informací pro konkrétní analytický úkol.
- Mapování (Mapping): Klíčový krok. Abstraktní nebo přečištěná data se transformují na grafické elementy (body, linie, polygony) a přiřazují se jim vizuální atributy (barva, velikost, pozice).
- Renderování (Rendering): Proces, při kterém počítač z grafických elementů a jejich vizuálních vlastností vygeneruje finální digitální obraz (Image) na obrazovce (řeší se stínování, perspektiva, překrývání).
- Vizuální analýza (Visual Analysis): Uživatel (člověk) interpretuje obraz, získává vhledy a na jejich základě činí rozhodnutí nebo spouští další iteraci procesu.
2. Možné interakce uživatele v jednotlivých komponentách
Interaktivní vizualizace (na rozdíl od statické) vkládá uživatele do tzv. zpětnovazební smyčky (Interactive Steering), kde může aktivně zasahovat do každého kroku vizualizačního řetězce:
- Transformace dat (před řetězcem): Uživatel mění samotný vstup. Může například načíst zcela jiný datový soubor nebo změnit formát vstupních dat.
- Interakce s obohacením dat: Uživatel upravuje parametry výpočetních modelů. Může například změnit interpolační algoritmus (z nejbližšího souseda na lineární) nebo upravit práh pro shlukování (clustering).
- Interakce s filtrováním (Redukce dat): Uživatel typicky používá dynamické dotazy (dynamic queries). Pomocí posuvníků a tlačítek v rozhraní okamžitě omezuje zobrazovaná data (např. zúží zobrazený časový úsek nebo vybere jen určitou kategorii produktů).
- Interakce s mapováním: Uživatel dynamicky mění vizuální kódování. Může mapovat jiný datový atribut na velikost bodu, změnit paletu barev (např. z divergentní na sekvenční), nebo změnit rozvržení os (z lineární na logaritmickou škálu).
- Interakce s renderováním: Uživatel manipuluje s finálním obrazem. Typicky jde o navigaci v datech – panorámování (posun), přibližování (zoomování) nebo v 3D prostoru o interaktivní otáčení modelem a změnu úhlu kamery či osvětlení.
3. Vizualizační mantra a taxonomie interakčních úloh
Základní strategií pro interaktivní vizualizační proces je tzv. Vizualizační mantra (Ben Shneiderman): “Overview first, then filter and zoom, details on demand.” (Přehled nejdříve, pak filtrujte a přibližujte, detaily na vyžádání).
Samotná interaktivita z pohledu řetězce primárně spadá do sekci mapování (kde uživatel interaktivně mění parametry vizualizace a kódování).
Interakční úlohy se pak dělí podle úrovně abstrakce:
- Nízkoúrovňové interakční úlohy: Základní fyzické akce se vstupními zařízeními (např. pohyb myší, klikání, přetahování, stisknutí klávesy).
- Vysokoúrovňové interakční úlohy: Komplexní analytické operace na sémantické úrovni. Dělí se na:
- Manipulace s daty: Změna parametrů vizualizace, výběr (selection) a navigace v datech (pan, zoom, rotace).
- Redukce dat: Filtrace (odstranění nerelevantních dat) a agregace (seskupování a sumarizace do vyšší úrovně).
- Organizace pohledů: Juxtapozice (zobrazení pohledů vedle sebe), superpozice (překrytí vrstev na sebe) a vkládání (embedding / focus+context).
Question 2: Korelace a Linking (Scatterplot, Paralelní souřadnice) a pravidla pro přehlednost
1. Vizualizace korelace ve vícerozměrných datech
Když máme tabulková data s mnoha spojitými (kvantitativními) atributy a chceme zkoumat jejich korelaci (závislost), používáme primárně dvě techniky:
- Matice bodových grafů (Scatterplot Matrix - SPLOM):
- Je to mřížka mnoha malých 2D bodových grafů (faceting). Každý malý graf ukazuje vztah mezi jedním konkrétním párem atributů.
- Korelace: Je okamžitě viditelná tvaru shluku v daném čtverci (pozitivní lineární, negativní atd.).
- Paralelní souřadnice (Parallel Coordinates):
- Všechny osy (atributy) jsou umístěny rovnoběžně vedle sebe. Každá datová položka je reprezentována jako lomená čára protínající tyto osy.
- Korelace: Je vidět mezi dvěma sousedními osami. Pokud čáry jdou rovnoběžně, jde o silnou pozitivní korelaci. Pokud se kříží do tvaru písmene “X”, jde o silnou negativní korelaci.
2. Brushing a Linking (Propojování pro zachování přehlednosti)
Při zkoumání vícerozměrných dat v těchto vizualizacích je statický obrázek nedostačující. Aby analytik pochopil vztahy přes více dimenzí, musí být zavedena interakce Brushing & Linking.
- Brushing (Prořezávání / Výběr): Uživatel myší označí určitou oblast zájmu (štětcem vybere podmnožinu bodů ve SPLOMu, nebo vybere interval na jedné ose v Paralelních souřadnicích).
- Linking (Propojení pohledů): Vybrané položky se okamžitě a automaticky zvýrazní (highlight, např. červenou barvou) ve všech ostatních částech vizualizace (v ostatních grafech matice nebo na ostatních osách).
- Význam pro přehlednost: To nám umožňuje sledovat konkrétní “profil” skupiny dat napříč všemi dimenzemi současně. Můžeme například vybrat vozy s vysokým výkonem v jednom grafu a díky linkingu ihned vidět, jakou mají spotřebu a váhu v grafech (nebo na osách) ostatních. Nevybrané položky se typicky vizuálně ztlumí (zprůhlední), což dramaticky zvyšuje čitelnost a přehlednost.
3. Co dalšího je třeba dodržet pro přehlednost (Řešení problémů)
Aby SPLOM a Paralelní souřadnice zůstaly přehledné a neselhaly pod náporem dat, je nutné dodržet několik pravidel a využít pokročilé techniky:
U Paralelních souřadnic:
- Interaktivní přeskládání os (Reorder axes): Je absolutně nezbytné. V paralelních souřadnicích je korelace zřetelná pouze mezi sousedními osami. Uživatel musí mít možnost osy libovolně chytit a přesunout vedle sebe, aby mohl zkoumat vztah konkrétních dvou atributů.
- Barevné kódování nesousedních vztahů: Pokud chceme sledovat korelaci přes více os, můžeme hodnotu jednoho hlavního atributu namapovat na barvu celé lomené čáry. Tím vizuálně propojíme chování dat i na osách, které nejsou zrovna vedle sebe.
Řešení překrývání (Overplotting / Clutter) u obou technik: Pokud je dat mnoho, grafy se slijí do jedné černé (nebo barevné) skvrny. K udržení přehlednosti se používá:
- Poloprůhlednost (Alpha blending): Čáry nebo body jsou částečně průhledné. Místa, kde se jich překrývá mnoho, jsou tmavší (vizuálně to indikuje hustotu).
- Hierarchické shlukování (Clustering): Data se nejprve algoritmicky shluknou a vizualizují se celé shluky (např. jako zprůměrované, tlusté poloprůhledné pásy) místo tisíců individuálních linií.
- Zobrazení kontextu a odlehlých hodnot (Outlier-preserving focus+context): Přehlednost se udrží tak, že většina dat (trendy) se zanese do agregovaných přihrádek (binning) a vykreslí se jako kontextové plochy, zatímco důležité odlehlé hodnoty (anomálie) se přes to vykreslí ostře jako jednotlivé čáry.
- Omezení dimenzí u SPLOMu: Pokud je atributů příliš mnoho (např. 20), čtverce v matici budou tak mrňavé, že z nich nic nevyčteme. V takovém případě je nutné použít algoritmy redukce dimenze (PCA, t-SNE) nebo přejít na jiný typ zobrazení (např. Korelogram).
Question set 12
Question 1: Relační data - typy grafů, jak je vizualizovat, jaké úlohy ty vizualizace řeší
1. Typy relačních dat (grafů a sítí)
Relační data vyjadřují vazby (hrany) mezi entitami (uzly). Lze je rozdělit do několika základních typů podle toho, jaké vlastnosti tyto vazby mají (zda mají směr a zda tvoří cykly):
- Hierarchie / Stromy (Trees): Relace vyjadřuje vztah “rodič-potomek”. Jsou orientované a neexistují v nich žádné cykly. (Příklad: Souborový systém - složky a podsložky).
- Orientované acyklické grafy (DAG - Directed Acyclic Graph): Hrany mají jasně určený směr, ale stále v nich nesmí vzniknout uzavřený cyklus. (Příklad: Návaznosti prerekvizit univerzitních předmětů - předmět A musím mít splněný před B).
- Neorientované sítě (Undirected networks): Vazby jsou obousměrné a symetrické, nezáleží na směru. Mohou obsahovat cykly. (Příklad: Sociální síť Facebook - přátelství je vzájemné).
- Orientované sítě (Directed networks): Vazby mají směr a síť může obsahovat libovolné cykly. (Příklad: World Wide Web - stránka A odkazuje na B, B může na C a C zpět na A).
2. Jak relační data vizualizovat (Techniky)
Základním problémem vizualizace sítí je, že uzly typicky nemají předem dané prostorové souřadnice. Ty musí algoritmus vypočítat. Používají se 3 hlavní přístupy:
- 1. Node-link diagramy (Spojení čarami): Nejběžnější metoda. Uzly jsou body/tvary a vazby jsou čáry (nebo šipky).
- Pro stromy a DAG: Používá se Sugiyamův rámec (kreslí hierarchii do horizontálních vrstev shora dolů) nebo Radiální / Balónové / Hyperbolické stromy.
- Pro obecné sítě (i s cykly): Používají se Metody řízené silami (Force-directed layouts), jako např. Fruchterman-Reingold. Fungují jako fyzikální systém, kde se spojené uzly přitahují (jako na pružině) a nespojené odpuzují (jako magnety).
- 2. Vizualizace pomocí ohraničení (Containment): Uzly-potomci jsou nakresleni jako menší útvary (obdélníky) uvnitř útvaru svého rodiče. Vynikající pro vizualizaci objemu a hierarchií (1:M relace). Typickým zástupcem je Treemap (Squarified, Nested).
- 3. Maticová vizualizace (Adjacency Matrix): Řeší problém nečitelnosti (“hairball” efektu) u velmi hustých sítí. Uzly jsou řádky i sloupce v matici a samotná vazba je vybarvená buňka na jejich průsečíku. Pro odhalení vzorců a shluků (komunit) se musí chytře řadit řádky a sloupce (reordering).
3. Jaké úlohy vizualizace relačních dat řeší
Cílem vizualizace je poskytnout uživateli odpovědi na otázky zaměřené na topologii a atributy sítě. Úlohy se dělí podle svého cíle:
- Cílem je uzel (Item) nebo atribut:
- Úloha: Najít uzly splňující určitá kritéria atributů nebo topologie sítě.
- Příklady: Kdo má nejvíce přátel na sociální síti? (hledání uzlu s nejvyšším stupněm - nejvíce incidentními hranami). Jaký je plat osoby na daném uzlu?
- Cílem je vazba (Link):
- Úloha: Identifikovat existenci nebo atributy hran.
- Příklady: Které lety (vazby) mají kapacitu nad 200 cestujících? S kým vším komunikuje tento konkrétní zaměstnanec?
- Cílem je charakteristika sítě jako celku (Network characteristics):
- Úloha: Zkoumání globálních a strukturálních vlastností.
- Příklady: Cesty (Paths): Jaká je nejkratší cesta (nebo cesty kratší než X vazeb) mezi uživatelem A a uživatelem B? Komponenty: Je celá síť propojená, nebo se rozpadá na několik izolovaných shluků/ostrovů? Hierarchie: Kolik vrstev/úrovní vedení má tato firma?
Question 2: Geometrický, sémantický, Fisheye zoom - příklad využití, kde to není dobré
1. Geometrické přiblížení (Geometric Zoom)
Popis: Funguje jako obyčejná lupa. Pouze lineárně mění měřítko (zvětšuje nebo zmenšuje) zobrazeného obrazu. Pokud se obraz oddálí, objekty se zmenší. Informace mimo aktuální výřez obrazovky jsou zahozeny (nejsou vidět).
- Příklad vhodného využití: Prohlížení jednoduchých CAD výkresů, vektorových křivek nebo fotografií s obrovským rozlišením, kde potřebujeme jen fyzicky zvětšit daný detail, abychom lépe viděli vzdálenosti nebo tvar křivky na plátně.
- Kde to NENÍ dobré: Není dobrý pro textová nebo mapová data. Když geometricky oddálíme mapu světa, texty (názvy měst) se zmenší natolik, že z nich zbudou jen nečitelné pixely. Když graf naopak příliš přiblížíme, ztratíme veškerý kontext (vidíme jen jednu prázdnou plochu nebo obří kus čáry a nevíme, kde v datech jsme).
2. Sémantické přiblížení (Semantic Zooming)
Popis: Při tomto přiblížení objekty nemění jen svou fyzickou velikost, ale dynamicky mění svůj vzhled, reprezentaci a úroveň detailu na základě toho, jak moc jsou přiblížené.
- Příklad vhodného využití: Moderní digitální mapy (např. Google Maps). Při maximálním oddálení vidíme jen obrysy států. Když mapu přiblížíme, nevidíme jen “větší státy”, ale obrysy států zmizí a objeví se města reprezentovaná jako body. Při dalším zoomu body zmizí a objeví se uliční síť a názvy čtvrtí, při dalším zoomu se objeví 3D modely budov. Vizualizace tak přizpůsobuje zobrazenou sémantiku dostupnému prostoru.
- Kde to NENÍ dobré: U vizualizací, kde je pro analýzu kriticky důležité zachovat přesné geometrické proporce a velikosti, nebo u dat, která nemají inherentní hierarchickou strukturu (kde prostě neexistují “detaily”, které by se daly odkrývat). Uživatel by mohl být zmaten, kdyby se mu při zoomování začaly prvky svévolně měnit na jiné tvary.
3. Přiblížení rybím okem (Fisheye Zoom / Focus+Context)
Popis: Kombinuje zvětšení (zoom) s prostorovou deformací. Bod zájmu (fokus) se na obrazovce extrémně zvětší a zobrazí v maximálním detailu, zatímco jeho okolí (kontext) se na okrajích obrazovky postupně deformuje (stlačuje a zmenšuje), aby se vše vešlo do jednoho pohledu.
- Příklad vhodného využití: Zkoumání velmi rozsáhlých a složitých síťových grafů (např. topologie obrovské počítačové sítě). Správce může namířit “rybí oko” na jeden přetížený server (fokus se zvětší, ukážou se popisky a detaily zátěže), ale díky stlačenému okolí stále vidí, do kterých částí sítě je server připojen. Neztratí tak orientaci v celkové topologii.
- Kde to NENÍ dobré: Tam, kde je úkolem přesně vizuálně odhadovat velikosti, plochy, vzdálenosti nebo korelace. Prostorové zkreslení (deformace) totiž ničí schopnost oka posoudit, zda je nějaká čára rovná, nebo o kolik je jedna oblast větší než druhá. Pro mapy, kde chceme počítat hustotu, nebo pro scatterploty (kde úhel a vzdálenost určují korelaci) je Fisheye naprosto nevhodný, protože data vizuálně zdeformuje.
Question set 13
Question 1: Focus + Context - výhody, nevýhody, příklady a využití u prostorových dat
1. Princip, výhody a nevýhody Focus + Context
Princip: Tato technika umožňuje uživateli vidět objekt primárního zájmu (fokus) v plném detailu, a zároveň si na stejné obrazovce zachovat přehled o všech okolních informacích (kontext). Obě informace jsou integrovány do jednoho pohledu.
Výhody:
- Udržení orientace: Uživatel neztrácí globální kontext (ví, kde se detail v rámci celku nachází).
- Nižší kognitivní zátěž: Není potřeba přepínat mezi dvěma různými obrazovkami (jako u odděleného přehledu a detailu) a spoléhat se na krátkodobou paměť.
Nevýhody:
- Deformace (Distortion): Aby se detail a kontext vešly na jednu obrazovku, musí se prostor kolem fokusu stlačit nebo zkreslit.
- Ztráta proporcí: Zkreslení ztěžuje odhadování vzdáleností, ploch a úhlů, což může vést k chybné interpretaci dat.
2. Příklady technik Focus + Context
- Přiblížení rybím okem (Fisheye Zoom): Bod pod kurzorem je obrovský, okraje sítě jsou smrštěné a stlačené k okrajům obrazovky.
- Perspective Wall: Zobrazení dat na 3D zdi, kde střed je rovně před divákem (fokus) a kraje ubíhají do perspektivy (kontext).
- TableLens: V tabulce jsou některé řádky plně roztažené (ukazují přesná čísla/texty), zbytek řádků je zmenšen na výšku jednoho pixelu jako kontext.
- Hyperbolický strom: Kořen (nebo vybraný uzel) je uprostřed s velkým prostorem, čím blíže k okrajům, tím více se prostor exponenciálně smršťuje.
3. Jak to udělat v prostorových datech (Spatial Data)
Aplikovat Focus + Context na prostorová data (mapy, 3D objemy) je zrádné, protože prostorová data mají inherentní geometrii a vzdálenosti, na které se uživatel spoléhá. Pokud zdeformujeme mapu pomocí Fisheye zoomu, zničíme geografické tvary a vzdálenosti.
Jak to tedy řešit u prostorových dat:
- Magické čočky (Magic Lenses): Místo deformace celého prostoru uživatel pohybuje nad mapou virtuální “čočkou”. Uvnitř čočky (fokus) se data zobrazí detailněji nebo se odhalí jiná vrstva (např. rentgenový pohled na potrubí pod ulicemi), zatímco okolní mapa (kontext) zůstává zcela nedeformovaná.
- Sémantický Focus + Context: Nezvětšujeme fyzicky prostor, ale měníme sémantiku zobrazení. Například vybraný region na mapě (fokus) zobrazí detailní popisky a grafy, zatímco zbytek kontinentu (kontext) zůstane zobrazen jen jako obrysy bez textu.
- Průhlednost a stínování u 3D objemových dat: V lékařské vizualizaci (CT sken) nechceme deformovat orgány. Fokus (např. nádor nebo kosti) se vyrenderuje plně neprůhledně a barevně, zatímco kontext (okolní kůže a měkké tkáně) se vyrenderuje jako vysoce průhledný “duch”. Uživatel tak vidí detailní objekt přesně umístěný uvnitř kontextu lidského těla bez geometrického zkreslení.
Question 2: 3 techniky pro vizualizaci stromů/hierarchií, jejich porovnání a vhodné úlohy
1. Node-link diagram (Tradiční stromové rozvržení)
Princip: Uzly jsou reprezentovány tvary (kruhy, text), hrany jsou čáry spojující rodiče a potomka. Často využívá Sugiyamův rámec pro orientaci shora dolů.
- Výhody oproti ostatním: Naprosto bezkonkurenční v čitelnosti topologie (kdo je pod kým). Nevzniká zmatení z ohraničení nebo zkreslení.
- Nevýhody oproti ostatním: Extrémně špatné využití prostoru obrazovky. Široké stromy (mnoho listů) se nevejdou na monitor a vyžadují scrollování, většina obrazovky zůstává prázdná (bílý prostor mezi čarami).
- Vhodné vyhledávací dotazy (Úlohy):
- “Kdo je přímým nadřízeným uzlu X?”
- “Jaká je nejkratší cesta od kořene k listu Y?”
- “Kolik hierarchických úrovní (hloubku) má tato struktura?”
2. Treemap (Vizualizace pomocí ohraničení)
Princip: Namísto čar se využívá vnořování. Kořen stromu je celá obrazovka. Každý uzel je rozdělen na menší obdélníky reprezentující jeho potomky. Plocha obdélníku vždy kóduje nějaký kvantitativní atribut (např. velikost souboru).
- Výhody oproti ostatním: Maximalizuje využití prostoru (100% obrazovky je využito). Je to nejlepší technika pro porovnávání velikostí uzlů a hledání “největších” prvků v obrovských hierarchiích (např. desítky tisíc uzlů), kde by Node-link vytvořil nečitelnou pavučinu.
- Nevýhody oproti ostatním: Je velmi obtížné z něj vyčíst samotnou strukturu hierarchie (zejména u ne-vnořených variant). Nelze snadno sledovat hloubku stromu nebo cestu zpět ke kořeni.
- Vhodné vyhledávací dotazy (Úlohy):
- “Který adresář zabírá nejvíce místa na disku?”
- “Které firmy v IT sektoru mají největší podíl na trhu a zároveň klesají (červená barva)?”
- Úlohy zaměřené na atributy listů spíše než na topologii.
3. Radiální / Hyperbolický strom
Princip: Kořen je umístěn do středu. Větve se rozbíhají směrem ven v soustředných kruzích. Hyperbolický strom k tomu přidává nelineární prostor – střed je obrovský (fokus) a okraje se exponenciálně zmenšují a houstnou (kontext).
- Výhody oproti ostatním: Oproti Node-link diagramu lépe využívá obvod kruhu pro zobrazení mnoha listů najednou. Hyperbolický strom řeší problém s místem plynulou interakcí (kliknutím se uzel přesune do středu a rozbalí).
- Nevýhody oproti ostatním: Popisky na okrajích radiálního stromu jsou často otočené nebo nečitelně malé. Hyperbolický prostor zcela deformuje vizuální vzdálenosti, takže z něj nelze odhadovat proporce jako u Treemapu.
- Vhodné vyhledávací dotazy (Úlohy):
- “Ukaž mi detailní okolí (potomky a nadřízené) tohoto konkrétního uzlu, ale chci stále vidět, kde v celkové síti jsem.”
- “Interaktivní průzkum neznámé složité sítě krok za krokem (navigace přesunu fokusu).”
Trace: • b4m39viz




