Blog JSystems - uwalniamy wiedzę!

Szukaj

Power BI - Wizualizacje, interakcje i formatowanie raportu

Wykres Power BI pokazuje tylko część danych - próbkowanie i limit punktów

W skrócie

  • Gdy wykres Power BI pokazuje tylko część danych, przyczyną bywa limit punktów: według dokumentacji Microsoft większość wizualizacji rysuje najwyżej 3500 punktów, a powyżej tej liczby pokazuje próbkę.
  • Limit dotyczy punktów na wykresie, a nie wierszy w tabeli. Na modelu Nordvelli wykres dzienny z 15 sklepami w legendzie potrzebuje 22 493 punktów, a wykres punktowy transakcji 108 675.
  • Zmniejsz liczbę punktów: agreguj oś do miesięcy albo tygodni, zawęź dane fragmentatorem, ogranicz legendę do kilku serii. Na wykresie liniowym zostaw włączone próbkowanie o wysokiej gęstości.

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.

Jak to wygląda w praktyce

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ę.

Dlaczego tak się dzieje

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.

Co zrobić krok po kroku

  1. Policz punkty, zanim zaczniesz poprawiać wykres. Liczba punktów to liczba różnych kombinacji pól z osi i legendy. Otwórz Widok zapytań w języku DAX (ikona na pionowym pasku po lewej stronie okna), wklej zapytanie i kliknij Uruchom. Na modelu Nordvelli wynik to 22 493 pary dzień i sklep, 795 par miesiąc i sklep oraz 3450 par tydzień i sklep. Na wykresie liniowym z osią ciągłą wszystko powyżej 3500 punktów będzie próbkowane.
    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] ) )
    )
  2. Zagreguj oś do okresu, który odpowiada pytaniu. Trend 15 sklepów czyta się z miesięcy, nie z dni: w obszarze Oś X zamień datę dzienną na kolumnę miesiąca z 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.
  3. Zawęź dane fragmentatorem albo filtrem, gdy szczegół dzienny jest naprawdę potrzebny. Wykres punktowy transakcji dla samego sklepu Nordvella Białystok ma 2798 punktów i mieści się w domyślnym limicie. Sklep Nordvella Online ma 32 737 transakcji, więc nie zmieści się nawet po podniesieniu limitu do 10 000. Dla takich danych lepsza jest agregacja niż filtr.
  4. Na wykresie punktowym agreguj do poziomu, który da się obejrzeć. Zamiast 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.
  5. Ogranicz legendę. Pracownik w legendzie wykresu liniowego to 200 serii, a limit to 60, więc według dokumentacji algorytm uporządkuje serie alfabetycznie i pominie te po sześćdziesiątej. Pokaż ranking pracowników na wykresie słupkowym albo zostaw w legendzie kilka pozycji z czołówki rankingu filtrem Top N, który opisujemy w poście o Top N produktów: filtr wizualizacji czy miara z TOPN.
  6. Na wykresie liniowym z osią ciągłą zostaw włączony przełącznik Próbkowanie o wysokiej gęstości. Według dokumentacji Microsoft jest w Formatuj element wizualny na karcie Ogólne i domyślnie jest włączony. Według tej samej dokumentacji wcześniejszy algorytm wybierał próbkę z całego zakresu danych w stały sposób i nie zawsze trafiał w ważne punkty, na przykład w dzienne maksimum.

Jak sprawdzić, że problem zniknął

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.

Źródła i sposób sprawdzenia

  • Microsoft Learn: Apply data point limits and strategies by visual type (źródło)
  • Microsoft Learn: High-density line sampling in Power BI (źródło)
  • Microsoft Learn: High-density sampling in Power BI scatter charts (źródło)
  • Sprawdzone zapytaniami DAX na modelu Nordvelli: liczba dni, transakcji, produktów i pracowników oraz kombinacji dzień, tydzień i miesiąc ze sklepem i kategorią.

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

Najczęściej zadawane pytania

Ile punktów może pokazać wykres w Power BI?
Według dokumentacji Microsoft większość wizualizacji pokazuje najwyżej 3500 punktów danych, niezależnie od liczby serii, i najwyżej 60 serii. Wykres punktowy ma domyślnie 3500 punktów i da się go podnieść do 10 000, mapa Azure Maps przyjmuje 30 000 punktów, a wizualizacje Python i R 150 000 wierszy.
Dlaczego wykres liniowy w Power BI nie pokazuje wszystkich dni?
Na wykresie liniowym z osią ciągłą działa próbkowanie o wysokiej gęstości. Gdy punktów jest więcej niż limit, Power BI dzieli oś na przedziały i z każdego pokazuje wartość największą i najmniejszą. Kształt linii zostaje, ale etykietka narzędzia może pokazywać wartość tylko w punktach wybranych przez algorytm.
Co oznacza komunikat Wyświetlana jest reprezentatywna próbka w Power BI?
Wizualizacja dostała więcej wartości, niż może narysować, więc pokazuje ich wybór, a nie wszystkie. Pełna wersja komunikatu radzi odfiltrować dane lub wybrać inne pole. Wystarczy zagregować oś do tygodni albo miesięcy albo zawęzić dane fragmentatorem.
Jak pokazać wszystkie dane na wykresie Power BI?
Zmniejsz liczbę punktów poniżej limitu. Na modelu Nordvelli wykres dzienny 15 sklepów potrzebuje 22 493 punktów, a ten sam wykres miesięczny 795, więc mieści się w całości. Pojedyncze transakcje lepiej pokazać w tabeli, która doczytuje wiersze oknami po 500 podczas przewijania.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...