Tachometr v Excelu

Tachometr v Excelu (speedometer, zkrátka budík) je typ grafu, kterým se řada zkušenějších uživatelů chlubila již před několika lety. Nativní podpora v Excelu pro něj stále není, a tak si pomáháme jako kdysi – kombinací XY bodového grafu s rovnými spojnicemi a prstencovým grafem.

Grafy pro tachometr
Grafy pro tachometr

Jak ovládat ručičku tachometru (ukazatel)?

Rozhodně se nám hodí trocha teorie z algebry a matic. Ručička tachometru je jako vektor s počátkem v bodě nula, a my se musíme postarat o změnu polohy jejího koncového bodu. Otáčení probíhá kolem počátku souřadného systému ve 2D (osy x a y).  Matematika nás zavede do tématu zobrazení a rovnic pro translaci (posun) a rotaci. Zjistíme, že pro otáčení bodu se nám hodí dvourozměrná matice s funkcemi sinus a cosinus. Bod představuje sloupcový vektor o souřadnicích x a y.

Matice rotace
Matice rotace

 

Lepší vypovídající schopnost má graf. Pozn. Skrytý bod u druhého příkladu má jediný smysl – aby se trojúhelník uzavřel, musíme datovou sadu zakončit bodem, který je shodný s počátkem.

2D rotace bodu v grafu
2D rotace bodu v grafu

Pomalu, ale jistě jsme se prokousali teorií, a dospěli k ovládání ručičky (spojnice s počátkem v bodě [0,0] zakončená šipkou). Ještě zdaleka ovšem nejsme u cíle. Zatímco naše ručička se otáčí proti směru hodinových ručiček, ta na tachometru funguje opačně. Nerotuje ani v plném rozsahu 360°, ale jen v horní polovině kruhu , a leckdy ani ne v celé.

Ručička tachometru
Ručička tachometru

 

Zvolíme slepý úhel 20°, stejný na obou stranách. V tu chvíli se bude ručička pohybovat v rozpětí od 120° (hodnota třeba 0 na tachometru) až po 20° (hodnota třeba 100 na tachometru), a my máme před sebou k řešení jakousi transformaci souřadnic. Závislost je přímková (y = ax + b), a my z lineární regrese (funkce LINREGRESE, nebo XY bodového grafu a spojnice trendu s rovnicí) zjistíme závislost y = -1,4 x +160. Pro kontrolu dosadíme hodnoty 0 a 100.

Jak zpracovat stupnici tachometru

Pro stupnici tachometru slouží prstencový graf. Sami si přijdete na to, že aby byla skrytá polovina dole, je potřeba úhel první výseče nastavit na 270°. Z horní půlky budou vymezeny a následně rovněž skryty obě strany slepého úhlu. Zbytek tvoří samotnou stupnici tachometru a je na vás, jestli ji ještě dále rozdělíte na dílčí úseky (normální stav, varování, kritický stav, zkrátka klasický semafor).

Tip!

Je téměř jisté, že budete mít problémy se zobrazením popisků na stupnici. Většina návodů končí ručním přetahováním popisků datové řady nebo textových polí s propojením do listu. Předkládám lehce vylepšenou techniku Andrease Thehose , který velmi fikaně navrhl zdrojová data a popisky pro graf. Kolekce nul (výseč o nulovém úhlu) na sebe váže popisky, které se tak pootočí a nejsou na středu úsečí, zatímco jedničky tvoří dílky stupnice a k nim jejich součet úplně dole vytvoří protipól dolní úseče. Navíc tak sedí počet dílků a popisků (11 popisků, 10 viditelných dílků + 1 skrytý dolní). Zatímco Andreas popisky dále ručně vytahal nad úseče, předkládám následující: Na stejných datech vytvořte ještě jednu datovou řadu. Prstenec rozložte (cca 5 %), zobrazte popisky (u první řady je neuvažujte) a všechny výplně druhé řady skryjte. Zůstanou tak potřebné výplně vnitřního prstence a popisky vnějšího. Pozn. Obrázek pro zjednodušení nyní neuvažuje slepý úhel. Zkuste si také prolistovat paletu barev pro graf – možná najdete odstínovanou kolekci barvy, která vám bude vyhovovat.

Stupnice na tachometru
Stupnice na tachometru

Pojďme se pustit do tachometru.

Parametry tachometru
Parametry tachometru

Ručičku doplníme coby další řadu v grafu prstence, s hodnotami na vedlejší ose. Přirozeně změníme typ grafu této řady. Rozsah volíme stejný pro obě osy (zde od -5 do 5), a poměr stran upravíme na čtverec. Veškeré osy a mřížky skryjeme. U ručičky nastavíme v Pásu karet její podobu (sílu a barvu spojnice, zakončení na obou stranách).

Snímek výše ukazuje stav, kdy popisky v grafu jsou prostá textová pole provázaná odkazem přes řádek vzorců do listu. Jak je dodělat efektivněji, bylo ukázáno. Dále je na vás, jestli v grafu zobrazíte aktuální hodnotu (další textové pole). Samozřejmě se nabízí i otázka, jak jinak využít prázdnou spodní polovinu grafu…

K rotacím a ručičce coby ukazateli na tachometru se ještě někdy vrátíme. To až nebudeme tachometr řešit grafem, ale čistě grafickým objektem a ovládáním pod VBA.

Příloha
graf_tachometr.zip