Diagram strumieniowy
Autor: Piotr Karpiuk o czwartek 1. Sierpień 2013

Jak twierdzi Andy Kirk, autor bloga Visualizing Data, wizualizacja danych jest problemem optymalizacyjnym. Chodzi o to aby w efektywny sposób zakomunikować wgląd w pewne dane pamiętając o wrażeniach estetycznych i zaangażowaniu odbiorcy. Diagram strumieniowy (ang. streamgraph) jest przykładem nowoczesnego podejścia do zagadnienia prezentowania dużych ilości danych masowemu odbiorcy.
Pionierami tego rodzaju diagramów są panie S.Havre, B.Hetzler i L.Nowell, które w 2000 roku postawiły sobie za cel w przejrzysty sposób zwizualizować przemówienia Fidela Castro (swoją technikę nazwały ThemeRiver).
Właściwa moda na diagramy strumieniowe nastała po opublikowaniu przez L.Byrona w 2008 roku diagramu trendów muzycznych na portalu last.fm (kliknij poniższe zdjęcie, aby obejrzeć diagram dokładniej).

a zwłaszcza po opublikowaniu w tym samym roku w New York Timesie diagramu pokazującego sukcesy finansowe poszczególnych filmów w okresie ostatnich 20 lat (kliknij obrazek aby zobaczyć wersję interaktywną – po najechaniu kursorem myszki na film można przeczytać szczegóły, warto też rzucić okiem na pionową wersję statyczną):

Od tej pory diagramy tego rodzaju służą do prezentowania tematyki wystąpień polityków:

tematyki wypowiedzi 100 najbardziej wpływowych osób na Twitterze:

czy streszczania książek:

Inne przykłady: Historia filmu, wizyty na witrynach hazardowych w poszczególnych krajach świata, popularność imion niemowląt w USA na przestrzeni lat.
Krytyka
Pomimo pewnej atrakcyjności takiej formy prezentacji, wytyka się również kilka jej wad. Sporo odbiorców ma tendencję do poszukiwania na siłę w takich diagramach osi poziomej i podziału wykresu na część położoną nad tą osią („wartości dodatnie”) i pod („ujemne”), co często ma się nijak do zamiarów twórcy diagramu.
Kolejna sprawa to fakt, że ludzie mają ogólnie problem z właściwą interpretacją linii zakrzywionych takich jakie występują w diagramach strumieniowych. Bardzo wyraźnie pokazał to zagadnienie W.Cleveland w swojej książce Graphical Perception: Theory, Experimentation, and Application to the Development of Graphical Methods:

Na powyższym rysunku po lewej stronie mamy wykresy składające się z dwóch krzywych, a po prawej stronie odpowiadające im wykresy pokazujące różnice w odległości pomiędzy krzywymi. Do pewnego stopnia można zaradzić temu problemowi oferując odbiorcy interaktywne usprawnienia w rodzaju linii siatki czy lupę (ang. zoom).
Narzędzia
Programista, który chciałby użyć diagramu strumieniowego na swoich witrynach nie musi na szczęście kodować wszystkiego samemu. Taki typ diagramu można otrzymać w bibliotekach D3, Protovis lub StreamGraph Generator. Jeśli jednak żadna nie przypadnie do gustu i nie pozostanie nic innego jak napisać wszystko od zera, warto sięgnąć do 8-stronicowego artykułu Stacked Graphs – Geometry & Aesthetics gdzie omówiono podstawy teoretyczne tworzenia takich diagramów (w tym m.in. jak kolorować i porządkować poszczególne warstwy).