Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - Wizualizacje, interakcje i formatowanie raportu
Wykres Power BI pokazuje tylko część danych - próbkowanie i limit punktów
Linia na wykresie wygląda na kompletną, choć Power BI narysował na niej mniej punktów, niż jest w danych. Limit punktów na wykresie Power BI daje o sobie znać, gdy na oś trafiają pojedyncze dni albo transakcje, a do legendy kilkanaście sklepów czy setki pracowników: nie każdy dzień jest wtedy osobnym punktem linii, a wykres punktowy pokazuje tylko część transakcji. Limity bierzemy z dokumentacji Microsoft, próbkę rozpoznajemy po komunikatach, a wykres przebudowujemy na danych Nordvelli tak, żeby pokazywał pełny obraz.
Power BI nie zgłasza tu błędu. Rysuje mniej punktów, niż jest w danych. W tekstach interfejsu Power BI Desktop 2.157 są trzy komunikaty o takiej sytuacji: „Za dużo wartości. Nie są wyświetlane wszystkie dane.”, „Wyświetlana jest reprezentatywna próbka.” oraz „Pokazywanie znaczących punktów danych.” z dopiskiem „Automatycznie pakujemy dane i pokazujemy maksymalne i minimalne punkty w każdym pojemniku.” Warianty dwóch pierwszych z nazwą pola od razu podpowiadają wyjście: „Za dużo wartości „Data”. Nie są wyświetlane wszystkie dane. Odfiltruj dane lub wybierz inne pole.” oraz „Za dużo wartości „Data”. Wyświetlana jest reprezentatywna próbka. Odfiltruj dane lub wybierz inne pole.”
Na modelu Nordvelli łatwo przekroczyć limit. Sprzedaż jest zapisana w 1612 dniach, od 1 stycznia 2022 do 31 maja 2026. Wykres liniowy dzienny z jedną serią ma więc 1612 punktów i mieści się w limicie. Ten sam wykres z polem sklepu w legendzie potrzebuje 22 493 punktów (par dzień i sklep), a z kategorią produktu w legendzie 6447. Wykres punktowy z polem SprzedazID to 108 675 punktów, po jednym na transakcję.
Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
Każda wizualizacja wysyła do modelu zapytanie z własną strategią redukcji danych. Według dokumentacji Microsoft 3500 to maksymalna liczba punktów na większości wizualizacji, niezależnie od liczby serii, a wykres może mieć najwyżej 60 serii. Wyjątki mają wyższe limity: wykres punktowy pokazuje domyślnie 3500 punktów, a po zmianie ustawienia do 10 000, mapa Azure Maps 30 000, a wizualizacje Python i R dostają do 150 000 wierszy. Wykres kolumnowy z osią kategorii doczytuje kategorie oknami po 500, więc tam nadmiar danych widać jako przewijanie, a nie jako próbkę.
Na wykresie liniowym i warstwowym z osią ciągłą działa próbkowanie o wysokiej gęstości. Algorytm dzieli oś na przedziały i z każdego bierze wartość największą i najmniejszą, więc kształt linii i wartości odstające zostają, ale nie każdy dzień jest osobnym punktem. Dokumentacja opisuje skutek uboczny: etykietka narzędzia może pokazać wartość tylko wtedy, gdy kursor trafi w punkt wybrany przez algorytm. Gdy serii jest więcej niż 60, algorytm porządkuje je alfabetycznie i pomija te za limitem. W Nordvelli dotyczy to legendy z pracownikami, bo sprzedaż ma przypisaną 200 osób. Czym oś ciągła różni się od osi kategorii, opisujemy w poście o hierarchii dat i osi ciągłej na wykresie.
EVALUATE
ROW (
"dzień i sklep", COUNTROWS ( SUMMARIZE ( FaktSprzedaz, FaktSprzedaz[DataID], FaktSprzedaz[SklepID] ) ),
"miesiąc i sklep", COUNTROWS ( SUMMARIZE ( FaktSprzedaz, DimKalendarz[RokMiesiac], FaktSprzedaz[SklepID] ) ),
"tydzień i sklep", COUNTROWS ( SUMMARIZE ( FaktSprzedaz, DimKalendarz[Rok], DimKalendarz[TydzienRoku], FaktSprzedaz[SklepID] ) )
)DimKalendarz, na przykład PierwszyDzienMiesiaca (oś zostaje ciągła) albo hierarchię Rok, Kwartal, MiesiacNazwa. Wykres ma wtedy 53 miesiące razy 15 sklepów, czyli 795 punktów, a z kategorią w legendzie 212. Tygodnie dają 3450 punktów, tuż pod limitem, więc przy kolejnym sklepie zaczęłoby się próbkowanie.SprzedazID połóż w szczegółach produkt: Nordvella ma 30 produktów, więc wykres pokaże 30 punktów z sumą sprzedaży i marży każdego. Pojedyncze transakcje zostaw na tabeli, która według dokumentacji doczytuje wiersze oknami po 500 podczas przewijania.Po przebudowie wykres ma mniej punktów niż limit, więc według dokumentacji Power BI nie dzieli danych na przedziały i każdy punkt na osi ma swoją wartość w etykietce narzędzia. Sprawdź to na kilku miesiącach: dla wykresu miesięcy i sklepów liczba punktów to 795, więc żaden miesiąc żadnego sklepu nie odpada. Policz też czas rysowania w Analizatorze wydajności: pozycja Wyświetlanie elementu wizualnego mierzy rysowanie wizualizacji, a gdy jest wysoka, zmniejszasz liczbę punktów danych, o czym piszemy w lekcji o optymalizacji modelu i Analizatorze wydajności.
Projektuj stronę główną na poziomie zagregowanym (miesiąc, sklep, kategoria), a dzienne szczegóły przenoś na stronę szczegółów. Przed dodaniem pola do legendy policz, ile pozycji ma kolumna. Własny limit mają wizualizacje Python, w których skrypt dostaje najwyżej 150 000 wierszy, co pokazujemy w lekcji o wizualizacjach w Pythonie i R.
Zachowanie programu sprawdziliśmy w Power BI Desktop 2.157 (wydanie z sierpnia 2026 r.) z polskim interfejsem, a przykłady na modelu sieci Nordvella z bezpłatnego kursu Power BI. Microsoft wydaje nową wersję Power BI Desktop co miesiąc, więc nazwy przycisków i limity usługi mogą się zmieniać. Aktualne wartości podaje dokumentacja Microsoft Learn.
Wróć do listy: 131 najczęstszych pytań i problemów związanych z Power BI
Komentarze (0)
Brak komentarzy...