Spojnicový graf s první a poslední hodnotou
V reportech se snažíme o to, aby byly jednoduše čitelné, přehledné a čisté. Power BI v kombinaci s DAX (Data Analysis Expression) umí dělat krásně čisté grafy.
Jedním takovým příkladem je spojnicový graf, který má popisky dat jen u prvního a posledního bodu spojnice. Takovému grafu můžeme ještě odebrat osu Y, aby graf obsahoval opravdu jen nezbytná data. Tento typ grafu je vhodné zvolit, pokud chceme vidět vývoj trendu a porovnávat historickou hodnotu s aktuálním stavem.
Jak dosáhnu tohoto výsledku?
V první řadě je potřeba pochopit, že se jedná o menší workaround. Z toho důvodu budeme potřebovat vizuál, který kombinuje spojnicový a sloupcový graf. K čemu je potřeba sloupcový graf? Sloupcový graf slouží pro zobrazení hodnot pod spojnicí.
Pro demonstraci využiji předpřipravenou datovou sadu, která obsahuje pohlaví, věkovou kategorii, formát studia, rok, pro který je záznam pořízen a příjem:
Příprava grafu
Když do grafu vložíme na osu rok a jako hodnoty (jak pro sloupce, tak pro spojnici) příjem, tak výsledek bude vypadat následovně:
Takto zobrazený graf není příliš reprezentativní. Z toho důvodu udělám pár úprav. Upravím nadpis tak, že nadpis zarovnám na střed a převedu font na tučný. U obou os nechám skrýt pojmenování a osu Y nechám skrýt celou. V posledním kroku přesunu legendu do středu osy X.
Příprava funkce v jazyce DAX
Graf začíná vypadat lépe ale v této chvíli stále nesplňuje slíbené popisky. Abychom je získali, tak musíme začít s připravovat funkci v DAXu. Podstatou celé této funkce je nalézt a uložit si největší a nejmenší číselnou nebo datumovou hodnotu, což provedeme promocí funkce Calculate(MIN() nebo MAX(), Tabulka v celkovém stavu, jaký využívá graf). Není tedy třeba, abych používal vždy jen rok, měsíc a den, ale mohu stejně tak pracovat i s celými daty. Když dojde k nalezení a uložení nejmenší a největší hodnoty, pak je potřeba na místo této hodnoty zobrazit příjem. O tuto pasáž se stará funkce IF(), která pokud je jedna z podmínek splněna, vrátí příjem, jinak vrátí prázdnou hodnotu pomocí funkce BLANK().
VAR ALLSelectedZam =
ALLSELECTED ( 'Zaměstnanci' )
VAR minD =
CALCULATE ( MIN ( 'Zaměstnanci'[Rok] ), ALLSelectedZam )
VAR maxD =
CALCULATE ( MAX ( 'Zaměstnanci'[Rok] ), ALLSelectedZam )
RETURN
IF (
OR ( MIN ( 'Zaměstnanci'[Rok] ) = minD, MAX ( 'Zaměstnanci'[Rok] ) = maxD ),
SUM ( 'Zaměstnanci'[Price] ),
BLANK ()
)
Úprava grafu
Funkci jsem vložil opět do připraveného grafu a vložil jsem ji do sloupců na místo příjmu jako celku. Výsledek je takový, že nově vidím pouze dva sloupce, první a poslední, s hodnotou součtu příjmů místo sloupců pro všechny roky.
Graf už vypadá mnohem lépe. Další krok je nyní takový, že sloupce v grafu přebarvím na stejnou barvu, jako má pozadí. V tu chvíli samozřejmě sloupce neuvidím, takže si zapnu popisky hodnot a povolím v nich přizpůsobení pro jednotlivé řady. Pro spojnici tyto popisky znovu deaktivuji a nechám je zapnuté pouze pro sloupce.
V grafu již opravu vidíme popisky pouze u prvního a posledního bodu grafu. Ještě tu jsou ale dva aspekty, které by bylo dobré vyřešit. První z nich je nekonzistence popisků, kdy jeden popisek je nad spojnicí a druhý pod. To můžeme vyřešit velmi jednoduše tím, že nastavíme popisky, aby se u sloupců zobrazovali uvnitř sloupce a nahoře. Osobně deaktivuji i pozadí pro popisky, abych předešel možnému rušivému momentu. Mohu rovnou nastavit i velikost písma a barvu, aby popisky byly graficky sjednocené s osou a výsledek působil jednotně.
Úprava legendy grafu
Poslední věcí, kterou musíme nastavit, je legenda. Ta v tuto chvíli obsahuje název funkce na sloupcích i nicneříkající název spojnice. Z tohoto důvodu jsem přejmenoval „Price“ na Příjmy zaměstnanců.
U „První a poslední popisek“ je to trochu složitější a budeme si muset pomoct aplikací Mapa znaků nebo taktéž Character Map. Pokud bychom chtěli místo názvu „První a poslední popisek“ dát mezeru, aby výsledek působil prázdně, tak Power BI provede automatickou změnu názvu zpět na původní název. To ale neplatí o speciálních znacích. V těch se totiž nachází například U+200D neboli Zero Width Joiner, ten Power BI uzná a nepřepíše ho zpět na původní název. Provedu tedy výběr přes Select a uložení přes Copy.
Přejmenuji název u funkce aplikované na sloupce na zkopírovaný znak a dostanu kýžený výsledek.
Takto připravený graf je čistý, snadno čitelný a přehledný. Stejným způsobem, jen s menší úpravou DAXového kódu, můžete docílit jen poslední nebo jen první hodnoty.