Przegląd raportu Power BI zwykle wygląda tak samo: ktoś doświadczony siada obok i mówi, co mu się nie podoba. Oś słupków nie zaczyna się od zera, czerwony i zielony zleją się osobie z daltonizmem, na stronie jest czternaście wizualizacji, a jedna wystaje poza kanwę. Uwagi są trafne, ale zależą od tego, kto akurat patrzy i co pamięta.
Większość z nich ma źródło w spisanych standardach: WCAG, badaniach Clevelanda i McGilla, notacji IBCS, książkach Tufte'a i Few. Skoro są spisane, da się je sprawdzać automatycznie. Tak powstały Standardy wizualizacji, narzędzie zewnętrzne Power BI Desktop. Kod jest na GitHubie.
Panel obok raportu
Po instalacji na wstążce Narzędzia zewnętrzne pojawia się nowy przycisk. Otwiera panel przyklejony do prawej krawędzi okna Power BI, który czyta otwarty raport i pokazuje:
- ocenę 0–100 dla każdego wybranego standardu i ocenę ogólną,
- listę problemów, a przy każdym: dlaczego to problem, jak go naprawić, skąd pochodzi reguła i gdzie problem występuje,
- szkice stron z obrysem wizualizacji, które mają uwagi.
Narzędzie tylko czyta. Niczego nie zmienia w raporcie ani w modelu, więc można je bez ryzyka uruchomić na cudzym raporcie.
Osiem standardów, 55 reguł
- Dostępność (WCAG 2.2 AA), 7 reguł: kontrast tekstu i grafiki, kolory rozróżnialne przy daltonizmie, tekst alternatywny, rozmiar pisma, kolejność tabulacji.
- Percepcja danych (Cleveland–McGill), 8 reguł: kanał kodowania (pozycja i długość zamiast kąta i pola), słupki od zera, druga oś, liczba serii, rozróżnialność kolorów.
- IBCS, 10 reguł: właściwe typy wykresów, czas w poziomie, linia tylko dla czasu, rok poprzedni jaśniej niż wykonanie, tytuł z komunikatem, jednolita skala.
- Minimalizm danych (Tufte), 5 reguł: ramy i cienie, siatka obok etykiet danych, legenda przy jednej serii, nadmierna precyzja.
- Projekt dashboardu (Few), 6 reguł: liczba wizualizacji i fragmentatorów, mierniki, jeden ekran, liczby z kontekstem.
- Układ i Gestalt, 7 reguł: kanwa, nakładanie się, wyrównanie, rytm odstępów, równowaga, KPI nad szczegółami.
- Spójność raportu, 5 reguł: fragmentatory w tym samym miejscu, jedna miara w jednym kolorze, rozmiary tytułów i stron, kroje pisma.
- Dobre praktyki Power BI (Microsoft), 7 reguł: nazwy stron, liczba wizualizacji a wydajność, jawne miary, ukryte i puste elementy.
Standardy wybierasz sam
Nie każdy raport musi spełniać wszystkie standardy naraz. Raport dla zarządu powinien trzymać się notacji IBCS, a dashboard operacyjny czy raport do eksploracji danych już niekoniecznie. Dlatego w zakładce Standardy włączasz i wyłączasz całe standardy, a po rozwinięciu standardu pojedyncze reguły. Są też gotowe profile:
- Podstawowy (domyślny): dostępność, percepcja, układ, spójność, dashboard,
- Raport zarządczy (IBCS): IBCS, percepcja, minimalizm, spójność, dostępność,
- Dostępność: tylko WCAG,
- Wszystkie.
Zmiana wyboru przelicza ocenę od razu, bez ponownego sprawdzania raportu. Silnik zawsze sprawdza wszystkie reguły, a panel liczy ocenę tylko z tych, które są włączone. Wybór zostaje zapamiętany dla kolejnych raportów.
Jak liczy się ocena
Każdy standard startuje od 100 punktów. Uwaga ma wagę: błąd 10, ostrzeżenie 4, informacja 1. Naruszona reguła odejmuje wagę × (1 + log₂ liczby wystąpień), ale najwyżej trzykrotność wagi.
Logarytm jest po to, żeby ten sam błąd powtórzony na dziesięciu wizualizacjach nie liczył się jak dziesięć różnych błędów. Zwykle to jedna decyzja, na przykład zły motyw, i poprawia się ją w jednym miejscu. Błąd w jednej wizualizacji kosztuje 10 punktów, w dwóch 20, w czterech i więcej 30, i na tym koniec.
Ocena ogólna to średnia wybranych standardów. Od 85 punktów panel nazywa ją dobrą, od 60 wymagającą poprawy, poniżej słabą. Na zrzucie wyżej ocena ogólna 86 to średnia pięciu standardów z profilu Podstawowego: (86 + 78 + 91 + 78 + 96) / 5 ≈ 86.
Dlaczego i jak naprawić
Sama ocena niewiele daje, jeśli nie wiadomo, co zmienić. Dlatego każda reguła ma trzy teksty: dlaczego, jak naprawić i źródło. Kilka przykładów:
- Słupki od zera (PERC-02, błąd). Długość słupka koduje wartość, więc oś zaczynająca się powyżej zera zawyża różnice. Tufte nazwał to lie factor. Reguła osobno zaznacza gorszy przypadek: przyciętą oś, która jest ukryta, bo wtedy czytelnik nawet nie wie o przycięciu.
- Kolory przy daltonizmie (WCAG-03). Panel symuluje protanopię, deuteranopię i tritanopię modelem Machado, Oliveiry i Fernandesa z 2009 roku, a potem liczy odległość barw ΔE2000 między seriami. Gdy po symulacji dwie serie różnią się o mniej niż 10, kolor przestaje nieść informację. Podpowiedź: para niebieski–pomarańczowy zamiast czerwony–zielony albo drugie kodowanie, na przykład etykieta przy serii.
- Wizualizacje w granicach kanwy (UKL-01, błąd). Część wizualizacji poza kanwą jest ucięta w usłudze i w aplikacji mobilnej. Element w całości poza kanwą jest niewidoczny, ale wciąż wysyła zapytanie.
Przycisk Kopiuj listę zadań zbiera problemy z wybranych standardów razem z instrukcją naprawy jako Markdown. Listę można wkleić do zgłoszenia albo do asystenta AI, który pomoże w poprawkach.
Co jest pod spodem
- Silnik to Python 3.9+ z samą biblioteką standardową, bez
pip install. Czyta raporty w formatach PBIR, PBIR-legacy i .pbix. - Gdy model jest lokalny, narzędzie czyta jego definicję przez TOM. Typy kolumn pomagają rozpoznać oś czasu.
- Kolorymetria jest napisana od podstaw: kontrast WCAG, przestrzeń CIELAB, ΔE2000 i symulacja daltonizmu.
- Panel to okno WinForms z WebView2 przyklejone do okna Power BI. Power BI Desktop nie ma API na panele we własnym oknie, więc panel jest osobnym oknem, które można zwinąć do paska albo odpiąć.
- Opcjonalny Desktop Bridge CLI od Microsoftu (wersja zapoznawcza) pozwala obejrzeć prawdziwy zrzut strony obok szkicu.
Każda reguła to funkcja w Pythonie z dekoratorem, który przypisuje jej standard, wagę i teksty. Własna reguła to jedna funkcja i jeden przypadek w testach.
Czego narzędzie nie widzi
Reguły czytają definicję raportu, nie obraz. Nie zobaczą uciętych etykiet, przewijanych tabel ani pustych wizualizacji. Do tego służy podgląd prawdziwego wyglądu strony. Kolory z formatowania warunkowego są pomijane, a kontrast liczy się tylko tam, gdzie tło jest znane z definicji, więc nie nad obrazem tła strony. Liczby kategorii w definicji nie ma, dlatego przy legendzie kolory serii są brane z palety motywu dla sześciu kategorii, a waga takiej uwagi jest obniżona.
Narzędzie nie zastępuje więc człowieka, który spojrzy na raport. Zdejmuje z niego pilnowanie rzeczy policzalnych, żeby mógł się zająć tym, czego żadna reguła nie oceni: czy raport odpowiada na właściwe pytanie.
Jak zacząć
Potrzebny jest Windows, Power BI Desktop i Python 3.9 lub nowszy.
# repozytorium w stałym folderze, np. C:\Narzedzia\standardy-wizualizacji
npm install # opcjonalnie: zrzuty stron przez Desktop Bridge
powershell -ExecutionPolicy Bypass -File .\instaluj.ps1
Rejestracja przycisku wymaga zgody administratora (okno UAC), bo plik trafia do wspólnego folderu narzędzi zewnętrznych Power BI w Program Files. Po instalacji uruchom ponownie Power BI Desktop. Panel czyta raport z pliku, więc po zmianach zapisz raport (Ctrl+S) i kliknij odświeżenie w panelu.
Narzędzie działa też bez Power BI, z wiersza poleceń. W repozytorium jest raport demonstracyjny ze stroną „Przed”, pełną naruszeń, i czystą stroną „Po”:
python standardy.py --raport przyklad\Demo.Report --profil wszystkie
Kod: SzczepanGortowski/PowerBI-Ocena-Projektu, licencja MIT. Interfejs i teksty reguł są po polsku. Wszystkie moje narzędzia do Power BI zbieram na stronie Power BI w Narzędziach.

